Crawler获取有关页面的信息(Scrapy)

时间:2017-07-01 14:39:23

标签: scrapy web-crawler

如何实现获取有关页面的所有信息的爬网程序(使用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

1 个答案:

答案 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'}