scrapy_splash组件的使用

scrapy_splash是一个基于Splash的Scrapy组件,用于处理JavaScript加载的数据。通过使用scrapy_splash,可以在Scrapy爬虫中模拟浏览器行为,获取经过JavaScript渲染后的网页源代码。设置包括创建项目和爬虫,配置settings.py,以及在start_requests方法中集成Splash。
摘要由CSDN通过智能技术生成

什么是scrapy_splash?

  • scrapy-splash加载js数据是基于Splash来实现的。 Splash是一个Javascript渲染服务。

  • 它是一个实现了HTTPAPI的轻量级浏览器,Splash是用Python和Lua语言实现的,基于Twisted和QT等模块构建。

  • 使用scrapy-splash最终拿到的response相当于是在浏览器全部渲染完成以后的网页源代码。

scrapy_splash的作用

  • scrapy-splash能够模拟浏览器加载js,并返回js运行后的数据

在scrapy中使用splash

1,创建项目创建爬虫

scrapy startproject 项目名
cd 项目名
scrapy genspider 爬虫名字 域

2,完善settins.py文件

    # 渲染服务的url
    SPLASH_URL = 'http://127.0.0.1:8050'
    # 下载器中间件
    DOWNLOADER_MIDDLEWARES = {
        'scrapy_splash.SplashCookiesMiddleware': 723,
        'scrapy_splash.SplashMiddleware': 725,
        'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
    }
    # 去重过滤器
    DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
    # 使用Splash的Http缓存
    HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'
    
    # Obey robots.txt rules
    ROBOTSTXT_OBEY = False

3,使用splash 在爬虫文件重写start_requests方法

def start_requests(self):
      yield SplashRequest(self.start_urls[0],
          callback=self.parse_splash,
            args={'wait': 10}, # 最大超时时间,单位:秒
            endpoint='render.html') # 使用splash服务的固定参数

4,运行爬虫,查看被渲染的响应内容

scrapy crawl 爬虫名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值