如何实现获取有关页面的所有信息的爬网程序(使用SCRAPY)。例如,图像大小,CSS文件大小以及保存在.txt文件中(page1.txt,page2.txt)
我用图片尝试了这个:
class TestSpider(scrapy.Spider):
name="Test"
start_urls = ["http://www.example.com/page1.html", "http://www.example.com/page2", ]
def start_requests(self):
for url in self.start_urls:
yield SplashRequest(url, self.parse, endpoint='render.html', args={'wait':5})
def parse(self, response):
for url_image in response.xpath('//img/@src').extract():
yield scrapy.Request(url=url_image, callback=self.parse_image)
def parse_image(self, response):
with open('page1.txt', 'a+') as f:
f.write(str(len(response.body)))
此代码将在page1.txt中保存所有大小的图像,如何将参数发送到parse_image()?例如,filename到parse_image()函数。
Splash浏览器完全符合我的需要 - > link
答案 0 :(得分:0)
要在您的解析方法之间传输数据,您可以使用Request
s meta
属性:
def parse(self, response):
data = {'foo': 'bar'}
yield Request(url, self.parse2, meta=data)
def parse2(self, response):
data = response.meta
# {'foo': 'bar'}