0
我想抓取新聞文章和他們的評論與scrapy。就我而言,新聞文章及其評論位於不同的網頁上,如以下示例所示。如何強制Scrapy刮掉文章網頁後相應的評論網頁?
(2)與文章相關的評論的鏈接。 http://www.theglobeandmail.com/opinion/editorials/if-britain-leaves-the-eu-will-scotland-leave-britain/article32480429/comments/
我希望我的程序能夠理解(1)和(2)是相關的。另外,我想確保(2)在(1)之後被抓取,而不是在中間抓取其他網頁。我使用以下規則來刮取新聞文章的網頁和評論網頁。
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)
但沒有奏效。如何在抓取文章網頁後立即要求抓取工具評論網頁?
謝謝您的回覆!它會轉到相應的評論鏈接,但它仍然不會在文章頁面後面留下評論頁面。它刮擦了其間的其他物品。 – user7009553
@ user7009553是的,因爲scrapy是異步的,它會並行地掃描多個鏈。因此,它可能會刮掉文章並安排評論請求,同時刮掉其他一些文章 - 但是您的鏈條不會丟失訂單。在這種情況下,你的鏈是parse_article-> parse_comments-> yield item,所以你應該得到你期望的結果。 – Granitosaurus