简介 你好,我使用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