我一直在努力抓取一個網站,並卡住了。我需要從一個網址開始,抓取所有源自它的網址,以及源自這些網址的所有網址等等。我搜索了以前的帖子,仍然無法找到解決我的問題。使用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