失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python爬京东联盟_Python+Selenium+Chrome抓取京东商品信息

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

时间:2021-05-30 15:47:53

相关推荐

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./2.7/chromedriver_win32.zip)

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

测试脚本

from selenium import webdriver

import json

driver=webdriver.Chrome()

driver.get('/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链接(/list.html?cat=9987,653,655),通过浏览器可以看到手机的商品列表页面。

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

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

后续内容

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

如果觉得《python爬京东联盟_Python+Selenium+Chrome抓取京东商品信息》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。