如何在scrapy response.follow中循环?

时间:2019-04-24 08:05:40

标签: python scrapy

我正在抓取Dmoz网站。而且我正在抓取每个页面,但是我不想每次都写response.follow()。相反,我想做一个循环。如何做到这一点,以便我只写page_namefunction_name而不是一次又一次地写整行代码。

    yield response.follow(self.about_page, self.parse_about, meta={'items': items})
    yield response.follow(self.editor, self.parse_editor, meta={'items': items})
    yield response.follow(self.suggestion, self.suggest_site, meta={'items':items})
    yield response.follow(self.help_page, self.parse_help, meta={'items':items})

1 个答案:

答案 0 :(得分:0)

您是要格式化代码吗?试试:

dct = [
    (self.about_page, self.parse_about),
    (self.editor, self.parse_editor),
    (self.suggestion, self.suggest_site),
    (self.help_page, self.parse_help),
]
for page, callback in dct:
    yield response.follow(page, callback, meta={'items': items})