目录
参数,属性
from scrapy_splash import SplashRequest
SplashRequest构造器方法中的一些常用参数。
- url
与scrapy.Request中的url相同,也就是待爬取页面的url。 - headers
与scrapy.Request中的headers相同。 - cookies
与scrapy.Request中的cookies相同。 - args
传递给Splash的参数,如wait(等待时间)、timeout(超时时间)、images(是否禁止加载图片,0禁止,1不禁止)等。 - endpoint
Splash服务端点,默认为‘render.html’,即JS页面渲染服务。 - splash_url
Splash服务器地址,默认为None,即使用settings.py配置文件中的SPLASH_URL = 'http://localhost:8050'
cache_args
对应列表,每次重复执行的脚本,可以用它将脚本缓存到 splash 服务器
在 setting.py 中配置
# 用来支持 cache_args (可选)
SPIDER_MIDDLEWARES = {
'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}
# Enable or disable downloader middlewares
# See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html
# Splash 服务器地址
SPLASH_URL = "http://192.168.99.100:8050/" # 自己安装的docker里的splash位置
# 设置去重过滤器
DUPEFILTER_CLASS = "scrapy_splash.SplashAwareDupeFilter"
# 开启 Splash 的两个下载中间件并调整 HttpCompressionMiddleware 次序
DOWNLOADER_MIDDLEWARES = {
'scrapy_splash.SplashCookiesMiddleware': 723,
'scrapy_splash.SplashMiddleware': 725,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810, # 不配置查不到信息
}
#设置 http 缓存
HTTPCACHE_ENABLED = True
HTTPCACHE_EXPIRATION_SECS = 0
HTTPCACHE_DIR = 'httpcache'
HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'
在 scrapy 中使用例子
https://www.jianshu.com/p/8a8d0ceed8d3
复制上面的代码没有结果,可能是商品下架了,换个商品的 id