Scrapy-Splash基本用法与部署

Scrapy框架之Scrapy-Splash的使用 https://github.com/scrapy-plugins/scrapy-splash

 

 

1.安装python3.7

2.安装pip3

3.安装 python3组件

pip3 install scrapy

pip3 install requests

pip3 install scrapy-splash

pip3 install pymysql

 

 

docker 安装

首先需要启动Splash,启动命令如下

docker run -p 8050:8050 scrapinghub/splash

然后在对应scrapy项目的settings里面配置Splash服务的地址,例如:

SPLASH_URL = 'http://192.168.59.103:8050'

#. 在settings中的DOWNLOADER_MIDDLEWARES 加上splash的中间件,并设置 HttpCompressionMiddleware 对象的优先级

DOWNLOADER_MIDDLEWARES = { 'scrapy_splash.SplashCookiesMiddleware': 723, 'scrapy_splash.SplashMiddleware': 725, 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810, }

 

#. 在SPIDER_MIDDLEWARES 中安装splash的 SplashDeduplicateArgsMiddleware 中间件

SPIDER_MIDDLEWARES = { 'scrapy_splash.SplashDeduplicateArgsMiddleware': 100, }

#. 您还可以设置对应的过滤中间件——DUPEFILTER_CLASS

DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'

#. 您可以设置scrapy.contrib.httpcache.FilesystemCacheStorage 来使用Splash的HTTP缓存

HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage' 用法

如果要使用Splash来对页面进行渲染,您可以使用SplashRequest来代替原始scrapy中的Request, 示例如下:

yield SplashRequest(url, self.parse_result, callback #任务完成之后对应的回调函数 #args设置的是端点API的参数,关于API参数问题,请参考: `Splash HTTP API <./api.html>`_ args={ # 可选参数,表示spalsh在执行完成之后会等待一段时间后返回 'wait': 0.5, #url是一个必须的参数,表明将要对哪个url进行请求 'url' : "http://www.example.com", #http_method:表示Splash将向目标url发送何种请求 'http_method': 'GET' # 'body' 用于POST请求,作为请求的请求体 # 'lua_source' 如果需要执行lua脚本,那么这个参数表示对应lua脚本的字符串 }, endpoint='render.json', # optional; default is render.html splash_url='<url>', # optional; overrides SPLASH_URL slot_policy=scrapy_splash.SlotPolicy.PER_DOMAIN, # optional, # "meta" 是一个用来向回调函数传入参数的方式,在回调函数中的response.meta中可以取到这个地方传入的参数 )

 

具体文档:https://splash.readthedocs.io/en/stable/scripting-overview.html

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风雨「83」

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

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

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

打赏作者

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

抵扣说明:

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

余额充值