Python爬蟲入門,8個常用爬蟲技巧盤點

2018-12-20

編程對于任何一個新手來說都不是一件容易的事情,Python對于任何一個想學習的編程的人來說的確是一個福音,閱讀Python代碼像是在閱讀文章,源于Python語言提供了非常優(yōu)


雅的語法,被稱為最優(yōu)雅的語言之一。


微信圖片_20181220164414.jpg


python入門時


用得最多的還是各類爬蟲腳本,


寫過抓代理本機驗證的腳本、寫過論壇中自動登錄自動發(fā)貼的腳本


寫過自動收郵件的腳本、寫過簡單的驗證碼識別的腳本。


這些腳本有一個共性,都是和web相關的,


總要用到獲取鏈接的一些方法,故累積了不少爬蟲抓站的經(jīng)驗,


在此總結一下,那么以后做東西也就不用重復勞動了。


很多時候跟著書和網(wǎng)站查找資料學習,會發(fā)現(xiàn)沒有目標,學了很多卻不知道自己到底能夠做出什么成績。要有一個清晰的職業(yè)學習規(guī)劃,學習過程中會遇到很多問題,你可以到我


們的 python學習交流群【 784758214 】,基礎,進階。從企業(yè)招聘人才需求 到怎么學習python,和學習什么內容都有免費系統(tǒng)分享,讓你無論是自學還是找相應的培訓都能讓


你少走彎路。希望可以幫助你快速了解Python,學習python


1、基本抓取網(wǎng)頁


get方法


微信圖片_20181220164422.jpg


post方法


微信圖片_20181220164423.jpg


2.使用代理服務器


這在某些情況下比較有用,


比如IP被封了,或者比如IP訪問的次數(shù)受到限制等等。


微信圖片_20181220164424.jpg


3.Cookies處理


微信圖片_20181220164425.jpg


是的沒錯,如果想同時用代理和cookie,


那就加入proxy_support然后operner改為 ,如下:


微信圖片_20181220164426.jpg


4.偽裝成瀏覽器訪問


某些網(wǎng)站反感爬蟲的到訪,于是對爬蟲一律拒絕請求。


這時候我們需要偽裝成瀏覽器,


這可以通過修改http包中的header來實現(xiàn):


微信圖片_20181220164428.jpg


5、頁面解析


對于頁面解析最強大的當然是正則表達式,


這個對于不同網(wǎng)站不同的使用者都不一樣,就不用過多的說明。


微信圖片_20181220164429.jpg


其次就是解析庫了,常用的有兩個lxml和BeautifulSoup。


對于這兩個庫,我的評價是,


都是HTML/XML的處理庫,Beautifulsoup純python實現(xiàn),效率低,


但是功能實用,比如能用通過結果搜索獲得某個HTML節(jié)點的源碼;


lxmlC語言編碼,高效,支持Xpath。


6.驗證碼的處理


碰到驗證碼咋辦?


這里分兩種情況處理:


google那種驗證碼,沒辦法。


簡單的驗證碼:字符個數(shù)有限,只使用了簡單的平移或旋轉加噪音而沒有扭曲的,


這種還是有可能可以處理的,一般思路是旋轉的轉回來,噪音去掉,


然后劃分單個字符,劃分好了以后再通過特征提取的方法(例如PCA)降維并生成特征庫,


然后把驗證碼和特征庫進行比較。


這個比較復雜,這里就不展開了,


具體做法請弄本相關教科書好好研究一下。


7. gzip/deflate支持


現(xiàn)在的網(wǎng)頁普遍支持gzip壓縮,這往往可以解決大量傳輸時間,


以VeryCD的主頁為例,未壓縮版本247K,壓縮了以后45K,為原來的1/5。


這就意味著抓取速度會快5倍。


然而python的urllib/urllib2默認都不支持壓縮


要返回壓縮格式,必須在request的header里面寫明’accept-encoding’,


然后讀取response后更要檢查header查看是否有’content-encoding’一項來判斷是否需要解碼,很繁瑣瑣碎。


如何讓urllib2自動支持gzip, defalte呢?


其實可以繼承BaseHanlder類,


然后build_opener的方式來處理:


微信圖片_20181220164431.jpg


8、多線程并發(fā)抓取


單線程太慢的話,就需要多線程了,


這里給個簡單的線程池模板 這個程序只是簡單地打印了1-10,


但是可以看出是并發(fā)的。


雖然說Python的多線程很雞肋


但是對于爬蟲這種網(wǎng)絡頻繁型,


還是能一定程度提高效率的。


微信圖片_20181220164432.jpg


9. 總結


閱讀Python編寫的代碼感覺像在閱讀英語一樣,這讓使用者可以專注于解決問題而不是去搞明白語言本身。


Python雖然是基于C語言編寫,但是摒棄了C中復雜的指針,使其變得簡明易學。


并且作為開源軟件,Python允許對代碼進行閱讀,拷貝甚至改進。


這些性能成就了Python的高效率,有“人生苦短,我用Python”之說,是一種十分精彩又強大的語言。


總而言之,開始學Python一定要注意這4點:


1.代碼規(guī)范,這本身就是一個非常好的習慣,如果開始不養(yǎng)好好的代碼規(guī)劃,以后會很痛苦。


2.多動手,少看書,很多人學Python就一味的看書,這不是學數(shù)學物理,你看例題可能就會了,學習Python主要是學習編程思想。


3.勤練習,學完新的知識點,一定要記得如何去應用,不然學完就會忘,學我們這行主要都是實際操作。


4.學習要有效率,如果自己都覺得效率非常低,那就停不停,找一下原因,去問問過來人這是為什么。


您的項目需求咨詢熱線:0760-88610046(國家高新技術企業(yè))

*請認真填寫需求,我們會在24小時內與您取得聯(lián)系。

japanese老熟女老太交,国产精品无码无套在线,在线人成视频播放午夜福利,亚洲AV永久无码区成人网站,亚洲精品无码专区在线观看,视频二区精品中文字幕,久久久久成人片免费观看蜜芽,日本熟妇人妻xxxx,亚洲欧美日韩成人一区,亚洲欧美性视频
天天综合网久久| 无码精品一区二区三区在线| 久久综合狠狠色综合伊人| 俺来也俺去啦久久综合网| 天天摸天天做天天爽水多| 亚洲色婷婷六月亚洲婷婷6月| 高清国产亚洲欧洲AV综合一区| 国产91色综合久久婷婷| 丰满的少妇XXXXX青青青| 2021国产精品最新在线| 久久精品午夜福利电影| 国99精品无码一区二区三区| 少妇仑乱A毛片无码| 五月天天爽天天狠久久久综合| 精品午夜久久福利大片| 国产一区二区精品久久岳| 欧美伦理一区二区三区| 亚洲午夜久久久影院| 亚洲欧美成人一区二区在线| 国产品无码一区二区三区在线| 人人妻人人澡人人爽曰本| 国产精品永久免费| av加勒比无码一区播放| 亚洲第一区视频| 久久国产侧拍| 色偷偷中文字幕综合久久| 天天干天天玩天天操| 免费人成在线视频无码| 51视频国产精品一区二区| 黑人巨大videos极度另类| 丰满少妇人妻无码区| 福利人妻视频入口导航| 无码网站天天爽免费看视频 | 久久久久蜜桃精品成人片公司| 亚洲精品一品区二品区三品区| 亚洲av日韩av无码a琪琪| 久久人人爽人人人人爽AV| 亚洲欧美日韩色| 精品国产污网站在线观看15| 亚欧美日韩香蕉在线播放视频| 国产午夜精品一区二区三区极品|