網(wǎng)絡(luò)爬蟲之Requests庫入門

網(wǎng)絡(luò)爬蟲(Web crawler)

網(wǎng)絡(luò)爬蟲又稱為爬蟲早处,是一種系統(tǒng)地瀏覽萬維網(wǎng)的互聯(lián)網(wǎng)機(jī)器人沪饺,通常由搜索引擎操作用于建立網(wǎng)頁索引浪册。又被稱為網(wǎng)絡(luò)蜘蛛鼻百,是由于互聯(lián)網(wǎng)是由無數(shù)個(gè)服務(wù)器自主運(yùn)行充當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn),而通過網(wǎng)絡(luò)協(xié)議將其鏈接的一個(gè)網(wǎng)絡(luò)严望,爬蟲在搜索查找的過程就像是蜘蛛在不同節(jié)點(diǎn)走動(dòng)多艇,故稱為網(wǎng)網(wǎng)絡(luò)蜘蛛。針對(duì)小規(guī)模的網(wǎng)頁爬蟲可以使用Requests庫像吻,對(duì)于網(wǎng)站等中規(guī)模爬蟲對(duì)爬取速度敏感需要用Scrapy庫峻黍,而全網(wǎng)爬取是用于構(gòu)建搜索引擎索引則需要定制開發(fā)复隆。

HTTP協(xié)議(超文本傳輸協(xié)議)

超文本傳輸協(xié)議用于規(guī)范萬維網(wǎng)上服務(wù)器與瀏覽器間信息傳遞的一種協(xié)議(請(qǐng)求-響應(yīng)協(xié)議),以TCP傳輸層協(xié)議為基礎(chǔ)是一種應(yīng)用層協(xié)議奸披。
具體內(nèi)容看圖解HTTP 了解Web及網(wǎng)絡(luò)基礎(chǔ)

網(wǎng)絡(luò)資源操作

Requests框架

Requests框架是一個(gè)通用簡便的爬蟲框架昏名,對(duì)urllib3進(jìn)行了高層封裝讓你更便捷地發(fā)出HTTP請(qǐng)求涮雷,號(hào)稱是“為人類準(zhǔn)備的HTTP庫”阵面。Requests官網(wǎng)
requests庫有7個(gè)主要方法,但本質(zhì)上只有一個(gè)主要方法request()洪鸭,其他的方法都是出于使用方便考慮依照HTTP協(xié)議的6大方式封裝出來的(函數(shù)內(nèi)部就是在方法request()中通過第一個(gè)參數(shù)指定方式)样刷。

Requests庫

在這6個(gè)方法中需要重點(diǎn)掌握get(),該方法構(gòu)造一個(gè)向服務(wù)器請(qǐng)求資源的Requests對(duì)象览爵,提交后返回包含服務(wù)器資源的Response對(duì)象(該對(duì)象包含服務(wù)器返回的所有信息置鼻,包括Request的請(qǐng)求信息)。以下是Response對(duì)象的屬性:
Response對(duì)象的屬性

其中的content屬性說是二進(jìn)制形式的內(nèi)容是指圖像蜓竹、音頻等文件

爬取網(wǎng)頁的通用代碼框架

import requests

try:
    r = requests.get("http://www.baidu.com", timeout=30)
    r.raise_for_status() # 返回值不是200的話會(huì)引發(fā)HTTPError
    print(r.encoding)
    print(r.apparent_encoding)
    r.encoding = r.apparent_encoding # 將從內(nèi)容猜測(cè)出來的文本編碼方式作為此文檔的編碼方式
    print(r.text[:10])
except:
    print("異常")

網(wǎng)絡(luò)爬蟲合法指南

網(wǎng)絡(luò)爬蟲的風(fēng)險(xiǎn)

  1. 性能騷擾:web服務(wù)器是面向人類訪問開發(fā)箕母,而爬蟲利用計(jì)算機(jī)模擬訪問機(jī)制向服務(wù)器發(fā)送了大量的請(qǐng)求,可能對(duì)服務(wù)器帶來巨大的資源消耗
  2. 法律分險(xiǎn):服務(wù)器的數(shù)據(jù)具有產(chǎn)權(quán)歸屬俱济,爬取的數(shù)據(jù)用于牟利將可能帶來法律分險(xiǎn)
  3. 網(wǎng)絡(luò)爬蟲可能具備突破簡單訪問控制的能力嘶是,獲得被保護(hù)資源而泄露個(gè)人隱私

網(wǎng)絡(luò)爬蟲的限制及規(guī)范

  1. 來源審查:在請(qǐng)求頭部中包含了用戶代理信息(代理人類需求發(fā)起請(qǐng)求的代理器),檢查HTTP協(xié)議頭的User-Agent域蛛碌,只響應(yīng)瀏覽器和友好爬蟲的訪問(技術(shù)限制)
  2. 協(xié)議公告:在網(wǎng)站根目錄下發(fā)布Robots協(xié)議聂喇,告知服務(wù)器上網(wǎng)站對(duì)應(yīng)被爬取的限制,要求爬蟲遵守(非技術(shù)強(qiáng)制但不遵守可能會(huì)有法律分險(xiǎn))
    京東的Robots協(xié)議

    當(dāng)你的爬蟲訪問頻次低數(shù)據(jù)量小類似人類訪問行為時(shí)可以不參考robots協(xié)議
    當(dāng)你帶著友好爬蟲的心態(tài)遇到了來源審查時(shí)蔚携,我們可以手動(dòng)修改HTTP頭中的User-Agent域?yàn)镸ozilla/5.0(瀏覽器默認(rèn))
import requests

url = "https://www.amazon.cn/dp/B0895R6GDK"
kv = {"user-agent":"Mozilla/5.0"}
try:
    r = requests.get(url,headers=kv)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text[:100])
except:
    print("有問題")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末希太,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子酝蜒,更是在濱河造成了極大的恐慌誊辉,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亡脑,死亡現(xiàn)場(chǎng)離奇詭異堕澄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)远豺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門奈偏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人躯护,你說我怎么就攤上這事惊来。” “怎么了棺滞?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵裁蚁,是天一觀的道長矢渊。 經(jīng)常有香客問我,道長枉证,這世上最難降的妖魔是什么矮男? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮室谚,結(jié)果婚禮上毡鉴,老公的妹妹穿的比我還像新娘。我一直安慰自己秒赤,他們只是感情好猪瞬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著入篮,像睡著了一般陈瘦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上潮售,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天痊项,我揣著相機(jī)與錄音,去河邊找鬼酥诽。 笑死鞍泉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盆均。 我是一名探鬼主播塞弊,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼泪姨!你這毒婦竟也來了游沿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤肮砾,失蹤者是張志新(化名)和其女友劉穎诀黍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仗处,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡眯勾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了婆誓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吃环。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖洋幻,靈堂內(nèi)的尸體忽然破棺而出郁轻,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布好唯,位于F島的核電站竭沫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏骑篙。R本人自食惡果不足惜蜕提,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望靶端。 院中可真熱鬧谎势,春花似錦、人聲如沸躲查。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镣煮。三九已至,卻和暖如春鄙麦,著一層夾襖步出監(jiān)牢的瞬間典唇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工胯府, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留介衔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓骂因,卻偏偏與公主長得像炎咖,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寒波,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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