【发布时间】:2016-10-22 22:40:01
【问题描述】:
我正在尝试使用 scrapy 抓取新闻文章及其 cmets。在我的例子中,新闻文章及其 cmets 位于不同的网页上,如下例所示。
(2) 与文章相关的 cmets 的链接。 http://www.theglobeandmail.com/opinion/editorials/if-britain-leaves-the-eu-will-scotland-leave-britain/article32480429/comments/
我希望我的程序了解 (1) 和 (2) 是相关的。另外,我想确保 (2) 在 (1) 之后被抓取,而不是在中间抓取其他网页。我使用以下规则来抓取新闻文章网页和 cmets 网页。
rules = (
Rule(LinkExtractor(allow = r'\/article\d+\/$'), callback="parse_articles"),
Rule(LinkExtractor(allow = r'\/article\d+\/comments\/$'), callback="parse_comments")
)
我尝试在文章的解析函数中使用显式请求调用,如下所示:
comments_url = response.url + 'comments/'
print('comments url: ', comments_url)
return Request(comments_url, callback=self.parse_comments)
但它没有用。如何让爬虫在抓取文章网页后立即抓取 cmets 网页?
【问题讨论】:
标签: python scrapy web-crawler