很多人都問過我這個問題,其實我覺得挺難回答的,爬蟲涉及的知識點很多,要真正列出來估計有幾十門,各種第三方庫,網路,資料庫甚至社工知識等。如果要走一條完美的入門路線,恐怕很難堅持下來。我建議先把 requests 用熟了,因為它真的很好用,用熟了 requests 就等於能抓取信息了,基本算簡單入門了,然後再考慮其他的,比如網頁解析,你在網上搜 Python 的解析庫,然後就了解到正則、 xpath 等等,再繼續學下去,這樣有目的地學,不枯燥。
剛開始我們爬蟲的數據都是存在本地的,後面可能會想要存到伺服器上,更方便管理,就這麼一點一點地學,在做的時候遇到問題,再繼續深入研究這方面的知識,這樣印象最深,效果最好。
通過xpath/css可以獲得某個html標籤節點。比如,一篇blog網頁,它的主體內容都在某個標籤裡面,可能是某個div。用xpath得到這個div,轉換為html,就是包含了格式及其圖片的部分,你保存這段html代碼而非純文本就好了。
網傳百度的做法是把文章的最長一句話(或多句)做hash,這個hash值就是文章的唯一性代表(指紋),這個方法準確率很高,但是召回率比較低,一旦這最長的幾句話改一個字就不能召回;我改進了該方法,對n句最長的話分別做hash,一個文章由n個指紋(如同人的十個指頭指紋都不一樣)確定唯一性。準確率和召回率都還不錯。