爲了作一個百度網盤搜索引擎,哥開始研究爬蟲,今後迷上爬蟲而一發不可收拾,如今就大概談談哥的爬蟲之路,順便給出引擎:http://www.quzhuanpan.com瀏覽器
首先基本的 Python 語法你要了解吧,推薦一本書《Python基礎教程》,很適合入門。服務器
其次分析你的爬蟲需求。程序具體 流程是怎麼樣的?把程序的大體框架搭起來。另外可能還有哪些難點?cookie
而後瞭解一下通常寫爬蟲須要用哪些庫,這些庫能夠很好的幫助你解決不少問題。推薦強悍的 Requests: HTTP for Humans 另外還有其餘一些庫 如 urllib2 BeautifulSoup 均可以瞭解下。多線程
動手開始寫了,遇到問題 Google 便可,Google 不行就上知乎問,我遇到的一個問題就是知乎私信大牛解決的。在寫的過程當中還會學到不少相關的知識,好比說HTTP協議, 多線程 等等。框架
這裏大概說說幾種特殊狀況處理:函數
一、 對於登錄狀況的處理post
這種狀況屬於post請求,即先向服務器發送表單數據,服務器再將返回的cookie存入本地。網站
二、使用cookie登錄搜索引擎
使用cookie登錄,服務器會認爲你是一個已登錄的用戶,因此就會返回給你一個已登錄的內容。所以,須要驗證碼的狀況可使用帶驗證碼登錄的cookie解決。url
三、適用狀況:限制IP地址狀況,也可解決因爲「頻繁點擊」而須要輸入驗證碼登錄的狀況。 這種狀況最好的辦法就是維護一個代理IP池,網上有不少免費的代理IP,參差不齊,能夠經過篩選找到能用的。對於「頻繁點擊」的狀況,咱們還能夠經過限制爬蟲訪問網站的頻率來避免被網站禁掉
四、適用狀況:限制頻率狀況。
Requests,Urllib2均可以使用time庫的sleep()函數:
五、有些網站會檢查你是否是真的瀏覽器訪問,仍是機器自動訪問的。這種狀況,加上User-Agent,代表你是瀏覽器訪問便可。有時還會檢查是否帶Referer信息還會檢查你的Referer是否合法,通常再加上Referer。
謝謝看官
本人建個qq羣,歡迎你們一塊兒交流技術, 羣號:512245829 喜歡微博的朋友關注:轉盤娛樂便可