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

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实现动态页面数据提取的方法(待续)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值