scrapy+selenium爬去京东动态网页

在尝试使用scrapy爬取京东图书信息时,发现部分数据是通过JS动态加载的,导致爬取结果不完整。为了解决这个问题,可以考虑使用scrapy-splash,但因操作复杂未采用。最终选择使用selenium来渲染页面:在spider初始化时启动浏览器驱动,通过自定义的downloadmiddleware中间件利用浏览器驱动加载页面,然后在settings.py中配置该中间件。运行scrapy后,成功获取到了动态加载的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用scrapy爬取京东图书出现问题:京东中部分数据采用JS加载生成。

造成后果:scrapy爬下来的网页缺乏一些信息(需要加载JS才能生成)如图1

图1

京东商品的价格不在网页源代码中。

解决方法:

1. 使用scrapy-splash。scrapy-splash可以帮助scrapy加载动态网页,下载地址

  github提供来下载的方法与安装指导

  由于感觉麻烦,没有使用

2. 使用selenium进行渲染,步骤如下:

a. 在自定义的spider的初始化时,使用selenium加载浏览器驱动,存到spider变量当中

b. 自定义一个downloadmiddleware中间件,使用spider中浏览器驱动加载页面。

注:此时scrapy中可能有多个爬虫,中间件只需要对自己需要的爬虫进行处理就可以了(使用if语句判断)

c. 将中间件添加到settings.py中(需

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值