selenium爬取300条京东懒加载的商品信息

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

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.解析源码获取标签内容

现在已经得到了加载完成后的页面数据,此时根据浏览器自带的工具,定位到图片列表具体的位置,大致如下。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream丶Killer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值