可以做爬虫的语言有很多,如 PHP、Java、C/C++、Python等等...

1)PHP语言

虽然是世界上最好的语言,但是他天生不是干这个的,而且对多线程、异步支持不够好,并发处理能力很弱。爬虫是工具性程序,对速度和效率要求比较高。

2)Java 语言

的网络爬虫生态圈也很完善,是Python爬虫最大的对手但是Java语言本身很笨重,代码量很大。  重构成本比较高,任何修改都会导致代码的大量变动。爬虫经常需要修改部分采集代码。

3)C/C++语言

运行效率和性能几乎最强,但是学习成本很高,代码成型比较慢,是很慢。  能用C/C++做爬虫,只能说是能力的表现,但是不是正确的选择。

Python 语言

语法优美、代码简洁、开发效率高、支持的模块多,相关的HTTP请求模块和HTML解析模块非常丰富。 还有强大的爬虫Scrapy框架,以及成熟高效的 scrapy-redis分布式策略。而且,调用其他接口也非常方便(胶水语言)

在此对于各语言爬虫代码就不一一比较了...

下面是一个爬取淘宝的案例

import re
import pymongo
from config import *
from selenium import webdriver
from bs4 import  BeautifulSoup
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support import expected_conditions as ECdriver = webdriver.PhantomJS(service_args=SERVICE_ARGS)
wait = WebDriverWait(driver, 10)
driver.set_window_size(width=1360, height=768)def search():print('正在搜素...')try:driver.get('https://www.taobao.com/')# 设置加载时间,input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#q")))# 输入框input.send_keys('美食')# 获取搜索点击按钮submit = driver.find_element_by_css_selector('#J_TSearchForm > div.search-button > button')# 点击搜索submit.click()# 获取页数total_page_num = driver.find_element_by_css_selector('#mainsrp-pager > div > div > div > div.total').texttotal_num = re.compile('(\d+)').search(total_page_num).group(1)# 获取页面详情get_products()return int(total_num)except TimeoutException:return search()# 获取下页
def next_page(page_number):print('正在翻页%s', page_number)try:input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#mainsrp-pager > div > div > div > div.form > input")))# 输入框input.clear()input.send_keys(page_number)# 获取搜索点击按钮submit = driver.find_element_by_css_selector('#mainsrp-pager > div > div > div > div.form > span.btn.J_Submit')# 点击搜索submit.click()# 根据高亮判断翻页是否成功wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR, '#mainsrp-pager > div > div > div > ul > li.item.active > span'), str(page_number)))# 获取页面详情get_products()except TimeoutException:return next_page(page_number)# 解析页面
def get_products():# 判断元素是否已经加载下来wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#mainsrp-itemlist .items .item')))page = driver.page_source# print(page)html = BeautifulSoup(page, 'lxml')items = html.select('#mainsrp-itemlist .items .item')print(len(items))for item in items:# 商品图片连接,第一种连接image = item.select('img')[0].attrs['data-src']if not image :# 第二种链接image = item.select('img')[0].attrs['data-ks-lazyload']# 封装写入mongodbproduct = {'image': 'https:'+image,'price': item.select('.price')[0].text.strip().replace('¥', ''),'product_url': item.select('.J_ClickStat')[0].attrs['data-href'], # 物品的连接'sel_num': item.select('.deal-cnt')[0].text[:-3],'title':item.select('.title')[0].text.strip(),'location': item.select('.location')[0].text.strip(),'shop': item.select('.shop')[0].text.strip(),}# print(product)save_to_mongo(product)# 写入mongo
def save_to_mongo(result):try:client = pymongo.MongoClient(MONGO_URL)db = client[MONGO_DB]try:if db[MONGO_TABLE].insert(result):print('写入数据库成功', result)except Exception:print('写入mongod失败!!')except Exception:print('连接mongo失败!')def main():try:total_page_num = search()for i in range(2, total_page_num+1):next_page(i)except Exception as e:print(e)finally:driver.close()if __name__ == '__main__':main()

爬虫案例 --- Python 爬取淘宝数据存到数据库相关推荐

  1. python爬取淘宝数据魔方_淘宝数据魔方技术架构解析

    淘宝网拥有国内最具商业价值的海量数据.截至当前,每天有超过30亿的店铺.商品浏览记录,10亿在线商品数,上千万的成交.收藏和评价数据.如何 从这些数据中挖掘出真正的商业价值,进而帮助淘宝.商家进行企业 ...

  2. python爬取淘宝数据魔方_《淘宝数据魔方技术架构解析》阅读笔记

    淘宝网拥有国内最具商业价值的海量数据.截至当前,每天有超过30亿的店铺.商品浏览记录,10亿在线商品数,上千万的成交.收藏和评价数据.如何从这些数据中挖掘出真正的商业价值,进而帮助淘宝.商家进行企业的 ...

  3. python爬取淘宝数据魔方_淘宝数据魔方技术架构解析阅读心得

    淘宝网拥有国内最具商业价值的海量数据,而帮助消费者进行理性的购物决策,是淘宝数据平台与产品部的使命.为此,我们进行了一系列数据产品的研发,比如为大家所熟知的量子统计.数据魔方和淘宝指数等.本文将以数据 ...

  4. python爬取淘宝全部『螺蛳粉』数据,看看你真的了解螺蛳粉吗?

    01.前言 上一篇文章(爬取淘宝热卖商品并可视化分析,看看大家都喜欢买什么!)爬取分析了淘宝的热卖商品,从分析来看『螺蛳粉』的销量巨高.因此这篇文章将爬取淘宝全部『螺蛳粉』商品数据,通过可视化分析淘宝 ...

  5. python爬淘宝app数据_一篇文章教会你用Python爬取淘宝评论数据(写在记事本)

    [一.项目简介] 本文主要目标是采集淘宝的评价,找出客户所需要的功能.统计客户评价上面夸哪个功能多,比如防水,容量大,好看等等. [二.项目准备工作] 准备Pycharm,下载安装等,可以参考这篇文章 ...

  6. python爬虫——用selenium爬取淘宝商品信息

    python爬虫--用selenium爬取淘宝商品信息 1.附上效果图 2.淘宝网址https://www.taobao.com/ 3.先写好头部 browser = webdriver.Chrome ...

  7. Python爬虫学习之爬取淘宝搜索图片

    Python爬虫学习之爬取淘宝搜索图片 准备工作 因为淘宝的反爬机制导致Scrapy不能使用,所以我这里是使用selenium来获取网页信息,并且通过lxml框架来提取信息. selenium.lxm ...

  8. python电商数据挖掘_利用Python爬取淘宝商品并数据挖掘与分析实战!此乃大型项目!...

    项目内容 本案例选择>> 商品类目:沙发: 数量:共100页 4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...

  9. Python爬取淘宝女模特信息

    前言 Python爬取淘宝美女信息下载本地并同时存储mysql数据库,存储数据库用到了pymysql模块,sql语句简单好用,直接上代码,源码请点链接Python-Spiders文集. 项目结构: 本 ...

最新文章

  1. Linux操作oracle——关闭、停止、重启
  2. 【机器学习入门】机器学习基础核心算法:贝叶斯分类!(附西瓜书案例及代码实现)...
  3. 复合梯形公式matlab代码_MATLAB龙贝格积分算法
  4. DS树+图综合练习--构建邻接表
  5. 什么是数字孪生?有哪些关键能力?
  6. python 服务监控_promethues + python + flask监控后端服务状态
  7. Nero Burning Rom v7.2.3.2b 简体中文版
  8. stdafx.h头文件代码
  9. 翻译软件免费版下载-免费版翻译软件下载
  10. 台达伺服调试软件_万能机智能伺服油源调试说明
  11. android5.0刷机,真快!努比亚手机更新安卓5.0(附刷机方法)
  12. 单片机c语言案例教程,单片机C语言案例教程教学指南.doc
  13. unique mapped reads
  14. 乐动手环app下载安装_乐动健康手环app下载-乐动健康客户端v2.34 安卓最新版 - 极光下载站...
  15. css解决图片缩小变模糊问题
  16. 3.文件系统组成和基本操作
  17. Java--网络编程(利用UDP实现简单的双人聊天)
  18. (超清版) 网络协议神图
  19. Android 学习笔记之九 下拉刷新
  20. macOS High Sierra 10.13.6 Nvidia显卡webdriver 证书失效 无法打开控制面板 解决方法

热门文章

  1. ddns-go搭建ddns(动态域名解析)
  2. Word2013目录设置,页码对齐
  3. iVMS-4200 Vs区别_76840红单足球预测 法甲 21:00 安格斯 VS 梅斯
  4. java分页查询参数封装
  5. 心理美容,女性最好的化妆品
  6. yolo 算法中的IOU算法程序与原理解读
  7. [转]英文自我介绍范文
  8. MSI驱动指南HOWTO
  9. android ui ue,什么是UI设计,UE设计,二者有什么区别?
  10. hdu2859Phalanx