这篇文章,我们将通过 selenium 模拟用户使用浏览器的行为,爬取京东商品信息,还是先放上最终的效果图:
1、网页分析
(1)初步分析
原本博主打算写一个能够爬取所有商品信息的爬虫,可是在分析过程中发现,不同商品的网页结构竟然是不一样的
所以,后来就放弃了这个想法,转为只爬取笔记本类型商品的信息
如果需要爬取其它类型的商品信息,只需把提取数据的规则改变一下就好,有兴趣的朋友可以自己试试看呀
好了,下面我们正式开始!
首先,用 Chrome 浏览器打开 笔记本商品首页,我们很容易发现该网页是一个 动态加载 的网页
因为刚打开网页时只会显示 30 个商品的信息,可是当我们向下拖动网页时,它会再次加载剩下 30 个商品的信息
这时候我们可以通过 selenium 模拟浏览器下拉网页的过程,获取网站全部商品的信息
>>> browser.execute_script("window.scrollTo(0,document.body.scrollHeight)")
(2)模拟翻页
另外,我们发现该网站一共有 100 个网页
我们可以通过构造 URL 来获取每一个网页的内容,但是这里我们还是选择使用 selenium 模拟浏览器的翻页行为
下拉网页至底部可以发现有一个 下一页
的按钮,我们只需获取并点击该元素即可实现翻页
>>> browser.find_element_by_xpath('//a[@class="pn-next" and @onclick]').click()
(3)获取数据
接下来,我们需要解析每一个网页来获取