2016-08-18 28 views
1

Scrapy指出它有一個DEPTH_LIMIT setting,但沒有具體說明它認爲的「深度」。在抓取頁面方面,我已經看到「深度」指的是「網址深度」,或http://somedomain.com/this/is/a/depth/six/url,其中由該URL請求的頁面深度爲「6」,因爲它的六個分段.會深度爲零。另一方面,當我們考慮在樹木方面進行刮取時,深度更可能指的是距離起始位置有多遠。因此,如果我爲它提供起始網址http://somedomain.com/start/here,即深度爲零,並且在該響應中找到的任何鏈接都將是深度一。DEPTH_LIMIT指的是什麼?目前的深度是否可以參考?

Scrapy是否使用這些定義之一?如果是這樣的話?如果它是後者(似乎更合理),是否有任何方法可以獲取深度信息,無論是在處理爬網程序中的響應時還是將其作爲管道中的項進行後處理時?

+1

我不知道我是否做出這個或沒有,但我認爲這是在元數據...(自從我使用scrapy以來已經過去了很久) - response.meta ['depth'] 「做任何事情?是的,我認爲這是後來因爲scrapy通過樹的方式...(至少我認爲這是DFS ...但是已經有一段時間了......) –

+0

@JonClements是的!這正是我需要的信息,並證明了這一理論。謝謝!如果你想提出答案,我會接受它! –

+0

好的..完成...可能是有用的其他...希望我還沒有完成 - 就像我說的 - 這是一段時間... –

回答

1

Scrapy使用DFS方法進行遍歷,當前深度可以通過響應元數據訪問:response.meta['depth']