簡介 你好,我使用Scrapy爲了在雅虎答案採取數據。 我的成就是將所有問題和答案都放在一個精確的部分。在Scrapy中使用遞歸蜘蛛[Python]
我嘗試 使用scrapy和硒首先我嘗試採取在部分任何問題的列表,這個列表是記憶中的蜘蛛類。 我使用For循環來解析每一頁。
for url in self.start_urls_mod:
yield scrapy.Request(url, callback=self.parse_page)
i = i + 1
該方法parse_page的結構爲廢棄問題頁面,最佳答案和所有其他答案。 這工作正常。
問題當我嘗試在頁面右側的下一個鏈接中出現的「下一步」鏈接中使用href繼續「下一步」問題時出現。 我再次調用相同的函數parse_page,從該鏈接傳遞URL。 有時這項工作,但其他時間沒有。 我現在不調用parse_page函數兩次是正確的,沒有在其他地方使用任何基本情況來停止遞歸它的停止。
該程序工作沒有任何錯誤,並停止,但我沒有找到任何問題在「下一節」部分。只有一個人。
有我的代碼片段。
def parse_page(self, response):
#Scraping with xpath things that interests me
#Go to the next similar question
next_page = hxs.xpath('((//a[contains(@class,"Clr-b")])[3])/@href').extract()
composed_string = "https://answers.yahoo.com" + next_page[0]
print("NEXT -> "+str(composed_string))
yield scrapy.Request(urljoin(response.url, composed_string), callback=self.parse_page)
ps。我會用一個叫做蜘蛛的蜘蛛,但是我不能定義任何規則來採取這種類型的問題。所以請如何改善我的功能。
相關信息: 所有的XPath選擇下URL的https://answers.yahoo.com/question/index?qid=20151008101821AAuHgCk
謝謝你,所以這將是正確的收益? yield scrapy.Request(composed_string,callback = self.parse_page) – RedVelvet
不客氣。是的,那將是正確的收益率。 – GHajba
非常感謝,我嘗試了一下這個建議!我讓你知道! – RedVelvet