我目前正在尝试创建一个使用scrapy的小型web报废原型。 我目前的问题与链接提取和跟随有关。Scrapy深入爬行不起作用
我试图让scrapy探索页面并找到页面的链接(现在不是图像和其他内容),但我不知道如何正确参数。
这是我使用的蜘蛛:似乎没有找到页面中的任何链接
class DefaultSpider(CrawlSpider):
name = "default"
session_id = -1
rules = [Rule(LinkExtractor(allow=()),callback='parse', follow=True)]
def start_requests(self):
#not relevent code that gives an URL list to be scrawled
for url in listurl:
#make scrappy follow only the current domain url.
self.rules[0].allow=url
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = Website(response.url,response.text)
DBInterface.store(page)
蜘蛛。我想我没有按照正确的方式去做。我试图将另一个函数作为回调而不是解析方法。 (改变规则回调参数太)
def processlinks (self,response)
page = Website(response.url,response.text)
DBInterface.store(page)
编辑:更新代码+正确认识冠军。
我理解你的主张,但我想你是误会了我的意思,我适当编辑的标题和我的代码,以使其更清晰。我想做一个深入的感谢! – Neil
也许你没有读过我的答案的第一部分,但是当使用'CrawlSpider'时,你不能重写'start_requests'和'parse'方法。我一直在你的代码中看到这些,所以这可能是你的蜘蛛不工作的原因。 – eLRuLL
“我试图将另一个函数作为回调而不是解析方法(更改规则回调参数)”我引用。如果我重写解析或使用另一个方法作为回调,它的行为方式相同。 – Neil