2011-12-06 79 views
2

我有一個我想抓取的URL列表 - 其中3000個。只允許scrapy內的內部鏈接

我想在每個網址上深入三個層次,但我不想去外部網址 - 只有我的啓動列表域中的鏈接。

我明白,如果我只想通過幾個網址來完成此操作,我只需填寫allowed_domains列表。

但是當你到3000個網址,因此該allowed_domains列表是太大Scrapy來處理(它把它變成一個大的正則表達式,據我可以告訴),因此它打破了......

任何想法?

「規則」列表中的某些內容會很好。 rules = (Rule(SgmlLinkExtractor(allow = (<local_links_only??>)) ,callback = 'parse_item'),)

或者在異地中間件 - 無論如何獲得引用鏈接?

或批處理作業?一次獲得50個URL?是否有任何鉤子允許這樣的東西 - 我可以看到start_requests - 但沒有回撥像finish_requests,我可以用來填補start_urls列表再次?

蓋伊

+0

你是說這3000個網址來自不同的網站?如果是這樣,我認爲你最好爲他們每個人分別分開蜘蛛。 – warvariuc

回答