一文詳解python爬蟲技巧,那些你知道和不知道的~~~
python作為一門高級編程語言,它的定位是優雅、明確和簡單。閱讀Python編寫的代碼感覺像在閱讀英語一樣,這讓使用者可以專註於解決問題而不是去搞明白語言本身。Python雖然是基於C語言編寫,但是摒棄了C中複雜的指針,使其變得簡明易學。並且作為開源軟體,Python允許對代碼進行閱讀,拷貝甚至改進。這些性能成就了Python的高效率,有「人生苦短,我用Python」之說,是一種十分精彩又強大的語言。
有些網站會識別訪問者是通過瀏覽器還是爬蟲,如果被識別使用的不是瀏覽器,則會禁止用戶在網站上的行為。這也就是放爬蟲。
常見的反爬蟲機制有:
- 分析用戶請求的headers信息
- 檢測用戶行為,如短時間內同一個IP頻繁訪問
- 動態載入增加爬蟲難度
- 驗證碼反爬蟲
- 信息需要登錄才能顯示
常見的大家可能都見過,那麼不常見的呢?
有的網站某些信息是加密的,可能瀏覽器上看到的是這樣,我們複製出來看到的又不一樣,這種需要解密;這裡還是要推薦下小編的Python學習裙:【五 八 八,零 九 零,九 四 二】不管你是小白還是大牛,小編我都歡迎,不定期分享乾貨,包括小編自己整理的一份2018最新的Python資料和0基礎入門教程,歡迎初學和進階中的小夥伴。在不忙的時間我會給大家解惑。
有的網站會檢測用戶滑鼠移動情況,爬蟲肯定是沒有滑鼠移動的,那麼肯定被幹掉;
還有就是代理IP,我們都知道網上存在大量代理IP,通過一些網站我們可以拿到免費IP,但是別人網站頁可以拿到的,別人拿到這些IP後直接BAN掉,所以失效,需使用更高效的ADSL撥號代理。
還有更變態的是,遇到需要點擊某元素才能進行下一步的網站。
下面說一說使用Python寫爬蟲時,如何反反爬蟲。
1、關於headers
常見的為瀏覽器加入headers,需要設置Requests Headers裡面的內容
其中的每一個參數都有自己的作用,面對不同的網站時方法也不一樣。
常見的就是設置User-Agent,這裡推薦一個包fake-useragent
2、關於代理
簡單方法就是購買,免費的和收費的相比還是差了不少。
如果想獲得免費的可用的代理如何辦?
可以看到在Google上可以看到很多搜索結果,接下來怎麼做你懂的。
3、關於Cookie
請求會返回多個Cookie,我們從其中找到最有效的Cookie,這回極大的提高效率
4、關於Selenium
Selenium可以完美解決反爬,因為它就是一個真實的瀏覽器在操作,網站沒理由把它幹掉。
但是也要看到Selenium的缺點,速度慢、效率低是最主要問題。自己寫著玩玩可以,但是在真是的應用中,Selenium並不常見。
當然,你可以使用Selenium+Phantomjs,並對其進行優化,速度和別的爬蟲還是沒法比。
寫在最後,爬蟲一直是熱門話題,今天介紹一些爬蟲偽裝技巧,若有錯誤請指出。
若大家覺得自己寫爬蟲麻煩,也可以來試試我們的產品
造數 - 最酷的智能雲爬蟲
開始學注意幾點:
1.代碼規範,這本身就是一個非常好的習慣,如果開始不養好好的代碼規劃,以後會很痛苦
2.多動手,少看書,很多人學Python就一味的看書,這不是學數學物理,你看例題可能就會了,學習Python主要是學習編
程思想。
3.勤練習,學完新的知識點,一定要記得如何去應用,不然學完就會忘,學我們這行主要都是實際操作。
4.學習要有效率,如果自己都覺得效率非常低,那就停不停,找一下原因,去問問過來人這是為什麼
推薦閱讀:
※Python如何寫函數給別人調用?
※學習筆記三:改善Python程序的91個建議
※入門numpy(上)【解讀numpy官方文檔】
※Python爬蟲之微博好友圈