我一直在努力抓取一个网站,并卡住了。我需要从一个网址开始,抓取所有源自它的网址,以及源自这些网址的所有网址等等。我搜索了以前的帖子,仍然无法找到解决我的问题。使用Scrapy,无法抓取链接通过我的起始网址
运行我的代码后,它会从我的起始url中删除链接,但它不会抓取起始url上的链接。我一直试图解决这个问题一段时间,不能。
我相信我的问题可能与我设定的规则但不确定。我已经删除了允许的域名,并确保我包含了,follow = True,并将其包含在我的代码中,并且我知道包括callback = parse会是一个问题,但看起来包括callback ='parse_item'不是,我也尝试删除它没有任何区别。
我还没有更改管道或设置文件夹,因为我不知道我会怎么做。我的项目是非常标准的,它是一个字段,并加载它使用,从hospitalone.items导入HospitaloneItem。我的代码的其余部分如下:
class HopitaloneSpider(CrawlSpider):
name = 'example.org'
#allowed_domains = ['http://>example.org/']
start_urls = [
'http://example.org/'
]
rules = (
#Rule(SgmlLinkExtractor(allow='>example\.org',)),
Rule(SgmlLinkExtractor(allow=('\w+$',)), callback='parse_item', follow=True),
)
def parse(self, response):
hxs = HtmlXPathSelector(response)
item = HospitaloneItem()
item['name'] = hxs.select('//a').extract()
return item
任何帮助将是伟大的。非常感谢。
减去是正确的,你不应该覆盖'parse'功能,除了您定义'parse_item '作为规则中的回调。如果您相应地更改当前解析函数的名称,可能您的蜘蛛将起作用。还要检查正则表达式。 – herrherr