Python網(wǎng)絡(luò)爬蟲-你的第一個爬蟲(requests庫)

0.采用requests庫

雖然urllib庫應(yīng)用也很廣泛些楣,而且作為Python自帶的庫無需安裝,但是大部分的現(xiàn)在python爬蟲都應(yīng)用requests庫來處理復(fù)雜的http請求泊脐。requests庫語法上簡潔明了碘饼,使用上簡單易懂恩尾,而且正逐步成為大多數(shù)網(wǎng)絡(luò)爬取的標(biāo)準(zhǔn)弛说。

1. requests庫的安裝

采用pip安裝方式,在cmd界面輸入:

pip install requests

requests 官方文檔http://python-requests.org翰意。

2. 示例代碼

我們將處理http請求的頭部處理來簡單進(jìn)行反反爬蟲處理木人,以及代理的參數(shù)設(shè)置,異常處理等冀偶。

import requests


def download(url, num_retries=2, user_agent='wswp', proxies=None):
    '''下載一個指定的URL并返回網(wǎng)頁內(nèi)容
        參數(shù):
            url(str): URL
        關(guān)鍵字參數(shù):
            user_agent(str):用戶代理(默認(rèn)值:wswp)
            proxies(dict): 代理(字典): 鍵:‘http’'https'
            值:字符串(‘http(s)://IP’)
            num_retries(int):如果有5xx錯誤就重試(默認(rèn):2)
            #5xx服務(wù)器錯誤醒第,表示服務(wù)器無法完成明顯有效的請求。
            #https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81
    '''
    print('==========================================')
    print('Downloading:', url)
    headers = {'User-Agent': user_agent} #頭部設(shè)置进鸠,默認(rèn)頭部有時候會被網(wǎng)頁反扒而出錯
    try:
        resp = requests.get(url, headers=headers, proxies=proxies) #簡單粗暴稠曼,.get(url)
        html = resp.text #獲取網(wǎng)頁內(nèi)容,字符串形式
        if resp.status_code >= 400: #異常處理客年,4xx客戶端錯誤 返回None
            print('Download error:', resp.text)
            html = None
            if num_retries and 500 <= resp.status_code < 600:
                # 5類錯誤
                return download(url, num_retries - 1)#如果有服務(wù)器錯誤就重試兩次

    except requests.exceptions.RequestException as e: #其他錯誤霞幅,正常報錯
        print('Download error:', e)
        html = None
    return html #返回html


print(download('http://www.baidu.com'))

結(jié)果:

Downloading: http://www.baidu.com
<!DOCTYPE html>
<!--STATUS OK-->
...
</script>

<script>
if(navigator.cookieEnabled){
    document.cookie="NOJS=;expires=Sat, 01 Jan 2000 00:00:00 GMT";
}
</script>



</body>
</html>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漠吻,一起剝皮案震驚了整個濱河市蝎土,隨后出現(xiàn)的幾起案子久橙,更是在濱河造成了極大的恐慌健民,老刑警劉巖宿礁,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剑梳,居然都是意外死亡乃沙,警方通過查閱死者的電腦和手機(jī)熬甫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門猎塞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來试读,“玉大人,你說我怎么就攤上這事荠耽∨敉” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵骇塘,是天一觀的道長。 經(jīng)常有香客問我韩容,道長款违,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任群凶,我火速辦了婚禮插爹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘请梢。我一直安慰自己赠尾,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布毅弧。 她就那樣靜靜地躺著气嫁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪够坐。 梳的紋絲不亂的頭發(fā)上寸宵,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機(jī)與錄音元咙,去河邊找鬼梯影。 笑死,一個胖子當(dāng)著我的面吹牛庶香,可吹牛的內(nèi)容都是我干的甲棍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赶掖,長吁一口氣:“原來是場噩夢啊……” “哼感猛!你這毒婦竟也來了七扰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤唱遭,失蹤者是張志新(化名)和其女友劉穎戳寸,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拷泽,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡疫鹊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了司致。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拆吆。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖脂矫,靈堂內(nèi)的尸體忽然破棺而出枣耀,到底是詐尸還是另有隱情,我是刑警寧澤庭再,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布捞奕,位于F島的核電站,受9級特大地震影響拄轻,放射性物質(zhì)發(fā)生泄漏颅围。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一恨搓、第九天 我趴在偏房一處隱蔽的房頂上張望院促。 院中可真熱鬧,春花似錦斧抱、人聲如沸常拓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弄抬。三九已至,卻和暖如春宪郊,著一層夾襖步出監(jiān)牢的瞬間眉睹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工废膘, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留竹海,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓丐黄,卻偏偏與公主長得像斋配,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

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