scrapy+selenium爬去京东动态网页

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

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

scrapy+selenium爬去京东动态网页_第1张图片

图1

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

解决方法:

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

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

  由于感觉麻烦,没有使用

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

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

scrapy+selenium爬去京东动态网页_第2张图片

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

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

scrapy+selenium爬去京东动态网页_第3张图片

c. 将中间件添加到settings.py中(需要在settings中配置,中间件才能跑起来)

scrapy+selenium爬去京东动态网页_第4张图片

d. 运行scrapy,查看结果

你可能感兴趣的:(python,spider)