使用Scrapy,无法抓取链接通过我的起始网址

时间:2012-08-29 21:05:07

标签: python scrapy web-crawler

我一直在抓取一个网站并且卡住了。我需要从一个url开始并抓取所有后续的url,并且所有来自这些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

任何帮助都会很棒。非常感谢。

1 个答案:

答案 0 :(得分:2)

我认为问题是因为你使用的是CrawlSpider,所以你不能覆盖parse方法。 以下链接可能对您有所帮助:http://doc.scrapy.org/en/latest/topics/spiders.html#crawling-rules

按照示例执行不同的解析函数