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

python作為一門高級編程語言酥馍,它的定位是優(yōu)雅辩昆、明確和簡單。

我學用python差不多一年時間了物喷,

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

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

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

這些腳本有一個共性,都是和web相關(guān)的尉辑,

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

在此總結(jié)一下隧魄,那么以后做東西也就不用重復勞動了卓练。

如果你在學習Python的過程中遇見了很多疑問和難題,可以加-q-u-n???227 -435-450里面有軟件視頻資料免費領(lǐng)取

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

get方法

post方法

2.使用代理服務(wù)器

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

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

3.Cookies處理

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

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

4.偽裝成瀏覽器訪問

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

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

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

如果你在學習Python的過程中遇見了很多疑問和難題木羹,可以加-q-u-n???227 -435-450里面有軟件視頻資料免費領(lǐng)取

5、頁面解析

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

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

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

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

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

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

lxmlC語言編碼,高效掠剑,支持Xpath屈芜。

6.驗證碼的處理

碰到驗證碼咋辦?

這里分兩種情況處理:

google那種驗證碼朴译,沒辦法井佑。

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

這種還是有可能可以處理的躬翁,一般思路是旋轉(zhuǎn)的轉(zhuǎn)回來,噪音去掉盯拱,

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

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

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

具體做法請弄本相關(guān)教科書好好研究一下奢浑。

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的方式來處理:

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

單線程太慢的話钢拧,就需要多線程了蟹漓,

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

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

雖然說Python的多線程很雞肋

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

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

9. 總結(jié)

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

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

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

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

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

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

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

3.勤練習缝裤,學完新的知識點,一定要記得如何去應(yīng)用颊郎,不然學完就會忘憋飞,學我們這行主要都是實際操作。

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市昆淡,隨后出現(xiàn)的幾起案子锰瘸,更是在濱河造成了極大的恐慌,老刑警劉巖昂灵,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件避凝,死亡現(xiàn)場離奇詭異舞萄,居然都是意外死亡,警方通過查閱死者的電腦和手機恕曲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門鹏氧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人佩谣,你說我怎么就攤上這事把还。” “怎么了茸俭?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵吊履,是天一觀的道長。 經(jīng)常有香客問我调鬓,道長艇炎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任腾窝,我火速辦了婚禮缀踪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘虹脯。我一直安慰自己驴娃,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布循集。 她就那樣靜靜地躺著唇敞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪咒彤。 梳的紋絲不亂的頭發(fā)上疆柔,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音镶柱,去河邊找鬼旷档。 笑死,一個胖子當著我的面吹牛歇拆,可吹牛的內(nèi)容都是我干的鞋屈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼查吊,長吁一口氣:“原來是場噩夢啊……” “哼谐区!你這毒婦竟也來了湖蜕?” 一聲冷哼從身側(cè)響起逻卖,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昭抒,沒想到半個月后评也,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炼杖,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年盗迟,在試婚紗的時候發(fā)現(xiàn)自己被綠了坤邪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡罚缕,死狀恐怖艇纺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情邮弹,我是刑警寧澤黔衡,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站腌乡,受9級特大地震影響盟劫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜与纽,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一侣签、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧急迂,春花似錦影所、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至听盖,卻和暖如春胀溺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背皆看。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工仓坞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腰吟。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓无埃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親毛雇。 傳聞我的和親對象是個殘疾皇子嫉称,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,139評論 25 707
  • 在科技飛速更新發(fā)展的今天,社交方式也有很多種灵疮,但最近最火的要數(shù)微信织阅!就像我父母這樣很少使用社交軟件的人,也學會了怎...
    請跟我聯(lián)駱閱讀 199評論 0 1
  • 昨天晚上翻出之前在畫畫孫老師班上畫的動漫震捣,又開始繪畫荔棉。 還是更喜歡黑白的喵 繪畫闹炉,是一個人的旅行。
    Clara喵閱讀 199評論 1 2