selenium爬取京东懒加载的商品信息
1.页面分析
首先给出要爬取数据的url: 京东
进入页面后,显示在界面上的图片已经加载完成,但是没有显示在屏幕上的内容,是没有加载的,只有当我们拖动界面,才会对相应资源进行请求和加载,我们如果用requests模块直接去请求获取页面源码数据,获取的源码肯定不完整。
这时就可以用selenium模拟浏览器的操作,通过拖动界面模拟人浏览,使浏览器资源加载完成后,再去获取页面源码,此时获取的内容就相对完整了。
本次爬取内容是300条商品信息,书籍名称、价格、图片下载链接,获取后将其保存到mysql数据库中。

2.滑动滚动条获取完整页面源码
先选取滑动滚动条的参照标签,执行JS代码,滑动滚动条到此标签位置,这里为了图片能够完全加载,将整个页面分为6部分,拖动六次后再获取页面源码。
代码如下:
def get_page_text(url):
driver.get(url)
sleep(random.random()*3)
for i in range(10, 61, 10):
sleep(1)
target = driver.find_element_by_xpath(f'//*[@id="J_goodsList"]/ul/li[{i}]')
driver.execute_script("arguments[0].scrollIntoView();", target)
sleep(random.random())
page_text = driver.page_source
return page_text
3.解析源码获取标签内容
现在已经得到了加载完成后的页面数据,此时根据浏览器自带的工具,定位到图片列表具体的位置,大致如下。

使用Selenium模拟用户行为,实现京东网站上图书信息的懒加载爬取,并将爬取到的图书名称、价格及图片链接存储至MySQL数据库。
最低0.47元/天 解锁文章
1197

被折叠的 条评论
为什么被折叠?



