我正在嘗試使用scrapy抓取整個網站。按照scarpy的文檔Scrapy不會抓取起始網址中包含的數據
start_urls - spider將開始抓取的URL列表, 未指定特定URL時。所以,下載的第一頁 將在這裏列出。隨後網址將會從包含在開始的URL數據生成 先後。
所以根據這個定義,scrapy應該蜘蛛通過start_urls
下提到的頁面上的所有子url,但它只抓取我指定的url。我確實指定了Scrapy - Crawl whole website中提到的規則,但它沒有幫助。它只會抓取並輸出我在start_urls中指定的頁面。
這裏是我的代碼片段:
class AcdivocaFirstSpider(scrapy.Spider):
name = "example_sample"
allowed_domains = ["example.org"]
start_urls = ["http://www.example.org/site/id/home"]
rules = rules = [Rule(SgmlLinkExtractor(), callback='parse_item', follow=True)]
def parse(self, response):
filename = response.url.split("/")[-1] #so eg it would name 'home'
open(filename, 'wb').write(response.body)
這就產生了與「家」網頁提取HTML數據的單個文件。如何從主頁開始以遞歸方式抓取整個網站?
任何幫助表示讚賞。謝謝。
這幫助!非常感謝你,我最終沒有重寫默認的解析方法,而是將其中一個定義爲要使用的回調函數! – user988544 2014-10-30 15:43:57