在scrapy-splash中同时返回png和html,可以通过以下步骤实现:
SPLASH_URL = 'http://localhost:8050'
DOWNLOADER_MIDDLEWARES = {
'scrapy_splash.SplashCookiesMiddleware': 723,
'scrapy_splash.SplashMiddleware': 725,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}
SPIDER_MIDDLEWARES = {
'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,
}
endpoint='render.png'
和args={'html': 1}
,示例如下:import scrapy
from scrapy_splash import SplashRequest
class MySpider(scrapy.Spider):
name = 'my_spider'
def start_requests(self):
url = 'http://example.com'
yield SplashRequest(url, self.parse, endpoint='render.png', args={'html': 1})
def parse(self, response):
# 处理返回的png和html数据
png_data = response.body
html_data = response.text
# 其他处理逻辑
在上述示例中,start_requests
方法中使用了SplashRequest替代了普通的Request,并设置了endpoint='render.png'
和args={'html': 1}
,这样就可以同时返回png和html数据。
需要注意的是,返回的png数据可以通过response.body
获取,而返回的html数据可以通过response.text
获取。
以上就是在scrapy-splash中同时返回png和html的方法。关于scrapy-splash的更多信息和使用方法,可以参考腾讯云的产品介绍链接地址:腾讯云Scrapy-Splash产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云