python作为一种动态语言,具有非常高的一发效率,用它来开发定向爬虫,非常适合。目前,已经有不少好用的库可以直接使用,大大加快开发过程。

爬虫一般可以分为静态爬虫和动态爬虫,其中静态爬虫是通过分析要抓取的页面结构,定位到抓取的关键步骤和关键位置后,直接进行数据抓取并进行页面解析,最终得到目标数据。

适用于静态页面和简单的Ajax页面。当页面过于复杂时(如需要Cookies验证、通过Ajax获取数据,并经过复杂渲染过程)人工分析的成本将显著加大,此时可通过使用动态爬虫进行抓取。本文以抓取京东商品信息为例,讲述动态爬虫的一般过程。在此之前,我们先了解一下静态爬虫的常用技术。

基于Python的静态爬虫

网页抓取库

列表内容 urllib urllib2 request …

页面解析库

beautifulsoup lxml HTMLParser …

基于Python的动态爬虫

动态爬虫主要解决JS执行和DOM渲染的问题,常见的渲染方式有

- Webkit

- CEF

- PhantomJS

- Electron

- Chrome

- Firefox

- …

本文中我们选用selenium对Chrome进行控制,实现数据的渲染和抓取。 selenium是一个web的自动化测试工具,可以操作Chrome、Firefox等浏览器。

环境配置

selenium

python下selenium的安装可以参考https://selenium-python.readthedocs.io/installation.html chromedriver

下载chromedriver(https://chromedriver.storage.googleapis.com/2.7/chromedriver_win32.zip)

解压后将chromedriver拷贝至Chrome的安装目录,并设置环境变量,将chromedriver的路径添加到Path中去

测试脚本

from selenium import webdriver

import json

driver=webdriver.Chrome()

driver.get('https://list.jd.com/list.html?cat=9987,653,655')

products=driver.execute_script('return JSON.stringify(slaveWareList);')

products=json.loads(products)

for product in products:

print product

运行上述脚本,将启动一个Chrome浏览器,并自动打开代码中指定的URL链接(https://list.jd.com/list.html?cat=9987,653,655),通过浏览器可以看到手机的商品列表页面。

在Python控制台将打印出所有的商品ID号

除此之外,还可以进一步获取商品的详细信息,并实现翻页等操作,读者可以自行展开研究。Selenium的API接口使用方法可在https://selenium-python.readthedocs.io/installation.html上找到相应的内容。

后续内容

基于electron实现动态页面数据提取的方法(待续)

python爬京东联盟_Python+Selenium+Chrome抓取京东商品信息相关推荐

  1. centos7+TP5.1+selenium+chrome抓取搜狗微信推文

    centos7+TP5.1+selenium+chrome抓取搜狗微信推文 一.Composer 引入 "require": {"php-webdriver/webdri ...

  2. python爬取网店数据_Python爬虫实现抓取京东店铺信息及下载图片功能示例

    本文实例讲述了Python爬虫实现抓取京东店铺信息及下载图片功能.分享给大家供大家参考,具体如下: 这个是抓取信息的 from bs4 import BeautifulSoup import requ ...

  3. Python爬虫实战(二):抓取京东苹果手机评价

    目录 1. 网站分析 2. 示例代码 3. 注意事项 1. 网站分析 本文实现的爬虫是抓取京东商城指定苹果手机的评论信息.使用 requests 抓取手机评论 API 信息,然后通过 json 模块的 ...

  4. python 批量下载 代码_Python + Selenium +Chrome 批量下载网页代码修改

    Python + Selenium +Chrome 批量下载网页代码修改 主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt 来达到在登陆状态下 批量打开并下载网 ...

  5. selenium+chrome抓取淘宝搜索抓娃娃关键页面

    最近迷上了抓娃娃,去富国海底世界抓了不少,完全停不下来,还下各种抓娃娃的软件,梦想着有一天买个抓娃娃的机器存家里~.~ 今天顺便抓了下马爸爸家抓娃娃机器的信息,晚辈只是觉得翻得手酸,本来100页的数据 ...

  6. python网络爬虫代理服务器_python爬虫如何抓取代理服务器

    一年前突然有个灵感,想搞个强大的网盘搜索引擎,但由于大学本科学习软件工程偏嵌入式方向,web方面的能力有点弱,不会jsp,不懂html,好久没有玩过sql,但就是趁着年轻人的这股不妥协的劲儿,硬是把以 ...

  7. python爬虫中文乱码_Python爬虫处理抓取数据中文乱码问题

    原博文 2013-12-17 17:15 − 乱码原因:因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件.但是windows的本地默认编码是cp936,也就是gbk编码,所以在 ...

  8. python下载电影视频_python爬虫:抓取下载电影文件,合并ts文件为完整视频

    目标网站:https://www.88ys.cc/vod-play-id-58547-src-1-num-1.html 反贪风暴4 对电影进行分析 我们发现,电影是按片段一点点加载出来的,我们分别抓取 ...

  9. python搞笑动态图_python小爬虫抓取搞笑图片

    大部分小程序都是基于py2.7的,我于是便想直接出一个py3.4最新版本的教程.大致看一下第一篇了解一下的一些概念性的东西以及bs4第三方库的使用.请参考文末. 我们的第一个小程序的相关要求: 目标: ...

  10. python爬虫ip代理_python爬虫批量抓取ip代理的方法(代码)

    本篇文章给大家带来的内容是关于python爬虫批量抓取ip代理的方法(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 使用爬虫抓取数据时,经常要用到多个ip代理,防止单个ip访 ...

最新文章

  1. 关于libStagefright系列漏洞分析
  2. INSTALL_FAILED_MISSING_SHARED_LIBRARY + Installation failed due to: ‘null‘
  3. java中bufferendwriter_Java IO系列(三)Writer
  4. pytorch基础知识整理(二)数据加载
  5. PHP5.2至5.6的新增功能详解
  6. CMarkup类在VC中的使用
  7. vue组件通信v兄弟组件通信eventbus遇到的问题(多次触发、第一次不触发)
  8. 每日一笑 | 床上还是桌上,你总得选一样~
  9. python获取未读邮箱数目_python imaplib 获取未读邮件,email解析并按照原名下载附件...
  10. MySQL查看和修改数据库存储目录
  11. python抢小米6自动化脚本
  12. OpenCV4系统化学习路线图与教程
  13. AX2009企业门户资料
  14. 在麒麟OS新版本上,发现的几个问题
  15. 通俗理解同步IO\异步IO
  16. 登录会员管理系统java_huiyuan 会员管理,一款基于java web 的 软件,可以实现登录、注册、充值功能。 Jsp/Servlet 262万源代码下载- www.pudn.com...
  17. js传递参数时类型错误
  18. JS+html+css实现的一个小小的贪吃蛇游戏
  19. 【Excel】excel中怎样隔行插入空行?
  20. kali学习1.扫描工具-Recon-NG

热门文章

  1. 违反GPL协议赔偿50万,国内首例!
  2. 用Excel自带图表插入带分类变量的箱形图(单坐标轴并列箱)
  3. win10启用smb3多通道_关于win10无法使用smb访问局域网内的计算机
  4. 微生物组-扩增子16S分析第10期(报名直播课免费参加线下2020.10)
  5. 推荐系统与LSTM、GRU
  6. 中国移动开放平台(dev.cmccopen.cn)请求头Header:Authorization验证失败的原因(我遇到的)
  7. python数码时钟代码_micro:bit 编程模拟时钟表盘
  8. jzojs 100047. 【NOIP2017提高A组模拟7.14】基因变异
  9. Win10 64位+Mysql5.7+主从同步配置
  10. 一键让网页变黑白色调