python爬虫延迟加载_当Scrapy遇到延迟加载

本文介绍了在Python爬虫中遇到延迟加载页面的问题,以及如何利用Selenium模拟鼠标滚动来完整抓取数据。通过在Scrapy的中间件中加入Selenium代码,可以实现页面完全加载后再进行爬取,确保数据的完整性。
摘要由CSDN通过智能技术生成

相信大家在爬取一些数据时会经常会遇到延迟加载的页面(例如某东),这就会造成所写的爬虫程序不能完整的抓取到整个页面的数据,下面就来介绍一下如何解决此类问题。

若想让页面显示完整须用代码模拟鼠标向下滚动的动作,Selenium就完全可以胜任这个任务,Selenium是免费的分布式的自动化测试工具,支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome,多语言C、 java、ruby、python、或都是C#。详细了解请点击下面的链接。selenium中文网 | selenium安装、selenium使用、selenium中文、selenium下载​www.selenium.org.cn

首先在Scrapy的爬虫主文件中导入Selenium包,具体代码如下:

from selenium import webdriver

class TestSpider(Spider):

name = 'test'

def __init__(self):

self.browser = webdriver.Chrome()

self.browser.set_page_load_timeout(30)

这仅仅是让Selenium导入到Scarpy中,大多数情况下我们所要抓取的网页都是多页的,而且我们也需要在Selenium执行完向下滚动页面的操作后我们再执行爬取整个页面的代码才能达到预期效果,所以我们需要将Selenium操作页面的代码放入到Scrapy的middlewares.py(中间件)文件中。

将Selenium滚动页面的代码放入Scrapy的middlewares.py文件中

from selenium.common.exceptions

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值