将额外的值与url一起传递给scrapy蜘蛛

时间:2014-05-16 13:51:28

标签: python python-2.7 web-scraping scrapy scrapy-spider

我在表单中列出了元组列表(id,url) 我需要从网址列表中抓取产品,当这些产品被抓取时,我需要将它们存储在其ID下的数据库中。

问题是我无法理解如何将id传递给parse函数,以便我可以将已爬行的项目存储在其id下。

1 个答案:

答案 0 :(得分:14)

start_requests()初始化初始网址并在meta中传递id

class MySpider(Spider):
    mapping = [(1, 'my_url1'), (2, 'my_url2')]

    ...

    def start_requests(self):
        for id, url in self.mapping:
            yield Request(url, callback=self.parse_page, meta={'id': id})

    def parse_page(self, response):
        id = response.meta['id']