(一)爬蟲基礎(chǔ)


Python爬蟲筆記(一)

前言:

? ? ? ? 先簡單說一說本人寫這篇文章的初衷襟铭,自我覺得之前學東西的深度以及效率一直不高薄货,偶然之間看到一種邊學邊寫的方法翁都,于是想著借鑒一下,因此我才想開一個這樣的專欄谅猾,一方面是記錄我的學習過程柄慰;另一方面鳍悠,也是分享出來供大家一起學習交流。(P.S.這是我第一次寫文章哈哈坐搔,萌新求照)藏研。

? ? ? ? 這第一篇,我不想直接寫requests庫概行,bs4庫之類的方法蠢挡,這些方法是死的,既然是開始就要把基礎(chǔ)打牢是吧凳忙。所以接下來我將盡可能精要地介紹一些HTTP基本原理业踏,爬蟲基本原理,以及Cookies的基本原理涧卵,并且在最后帶大家做一次最簡單的爬取勤家。


1)HTTP基本原理:

? ? ? ? HTTP的全稱是Hyper Text Transfer Protocol(超文本傳輸協(xié)議),用于從網(wǎng)絡傳輸超文本數(shù)據(jù)到本地瀏覽器的傳送協(xié)議柳恐。 爬蟲中經(jīng)常抓取的頁面通常就是http或https協(xié)議的伐脖。HTTPS是HTTP下加入SSL層,簡單來說就是HTTP的安全版乐设。

? ? ? ? HTTP的請求過程就是一個request-response的過程:用戶/瀏覽器 向網(wǎng)站所在服務器發(fā)送請求讼庇,服務器收到后進行處理和解析,并以文件形式傳回給用戶/瀏覽器近尚。

? ? ? ? 最主要的請求方式由GET與POST兩種方式:GET:請求中的參數(shù)會出現(xiàn)在url中蠕啄,提交的數(shù)據(jù)最多1024字節(jié) ; POST:請求參數(shù)會包裝在請求體中,故通常在表單提交時使用肿男,提交的數(shù)據(jù)大小沒有限制介汹。

? ? ? ? 響應則包括三個部分:響應狀態(tài)碼(Response Status Code)却嗡、響應頭(Response Headers)和響應體(Response Body)舶沛。? 需要稍微了解一下常見的狀態(tài)碼:200(成功),404(服務器中找不到資源)窗价,400(錯誤請求)以及500(服務器內(nèi)部錯誤)等如庭。


2)爬蟲基本原理:

? ? ? ? 簡而言之,爬蟲就是獲取網(wǎng)頁并提取和保存信息的自動化程序撼港。

? ? ? ? ? ? Step1 ---獲取網(wǎng)頁:就是要獲取網(wǎng)頁的源代碼(html代碼)坪它,Python中提供了許多庫來幫助我們實現(xiàn)HTTP請求來獲取網(wǎng)頁,比如urllib帝牡,requests庫等往毡。

? ? ? ? ? ? Step2 ---提取信息:拿到一整個網(wǎng)頁,但總不會整個內(nèi)容都是自己需要的吧靶溜,這里就需要提取出自己關(guān)心的內(nèi)容开瞭。有一個萬能的方法就是利用正則表達式進行匹配懒震,但是它較難構(gòu)造且效率不高,所以我們往往使用其他的方法來進行(如Beautiful Soup, XPath, pyquery等)嗤详,這一部分也是最花時間的一步个扰。

? ? ? ? ? ? Step3 ---保存數(shù)據(jù):通常我們可以僅用兩行代碼,將信息保存到文件中葱色。大量的數(shù)據(jù)也可以保存到數(shù)據(jù)庫中递宅,如MySQL和MongoDB等。

? ? ? ? ? ? Step4 ---自動化程序:自動化也就是利用爬蟲代替人的工作苍狰。自動化的過程通常會使用多線程來加速爬取的過程办龄。


3)Cookies的基本原理:

? ? ? ? 首先不妨來想一想這樣一件事,你登陸了簡書的賬號淋昭,關(guān)閉瀏覽器土榴,再打開的時候就不需要登陸了。這是如何做到的呢响牛?在解釋之前玷禽,還要了解HTTP的一個特點:無狀態(tài)。這就意味著HTTP協(xié)議對事務處理是沒有記憶的呀打。

? ? ? ? 由于HTTP本身不能提供這種保存登陸的實現(xiàn)矢赁,所以會話(session)和Cookies技術(shù)就應運而生了。Coolies保存了登陸的憑證贬丛,有了它撩银,下次就不需要重新輸入賬號密碼來登陸了。Cookie分為兩種級別豺憔,一種是會話級额获,另一種是持久級。會話可以理解是一次打開瀏覽器恭应,關(guān)閉瀏覽器那么一次會話就“結(jié)束”了抄邀。

? ? ? ? 會話級Cookie將Cookie保存在瀏覽器內(nèi)存中,瀏覽器關(guān)閉后Cookie就失效了(注意區(qū)別:session是存在與服務器中的昼榛,并不會消失境肾,只是因為會話級的Cookie失效了,無法找到對應SessionID的session胆屿,所以會話也就無法進行下去了)奥喻;持久級Cookie將Cookie保存在硬盤中,保存的時間可以通過程序自己定義非迹,過期才會失效环鲤,實現(xiàn)了一種持久化的解決方案。


小試牛刀:

????????這一基礎(chǔ)篇主要給新手們理解一下基本的概念憎兽,可能也略顯乏味冷离,最后呢结闸,做一個最簡單的爬取(也可以跳過酒朵,直接看下篇文章)桦锄。

? ? ? ? 我們來實現(xiàn)一個IP地址自動查詢。IP138網(wǎng)站(http://www.ip138.com)為我們提供了一個天然的接口蔫耽,就拿它下刀吧结耀。我們先在網(wǎng)站上輸入一個ip,看看有什么發(fā)生(以Google免費DNS為例:8.8.8.8)匙铡,發(fā)現(xiàn)網(wǎng)址變成了這樣

輸入測試IP后的網(wǎng)址

? ? ? ? 猜想图甜,是不是ip后面接一個符合條件的IP就能直接查詢呢? 于是我們就利用這樣的一個關(guān)鍵字接口來寫程序了鳖眼。(發(fā)現(xiàn)復制代碼不方便黑毅,直接貼圖了)


全部代碼

? ? ? ? 因為還沒有將后面的知識,所以這里只是返回整個html頁面钦讳,在通過切片截取出有用的部分矿瘦。這樣就能得到想要的結(jié)果了。


結(jié)語:

????????謝謝大家閱讀愿卒,希望能對你有所幫助缚去,我也會加緊學習的步伐繼續(xù)下去。現(xiàn)在僅僅是開始琼开,精彩永遠在路的盡頭易结。共勉吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柜候,一起剝皮案震驚了整個濱河市搞动,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渣刷,老刑警劉巖鹦肿,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異飞主,居然都是意外死亡狮惜,警方通過查閱死者的電腦和手機高诺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門碌识,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人虱而,你說我怎么就攤上這事筏餐。” “怎么了牡拇?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵魁瞪,是天一觀的道長穆律。 經(jīng)常有香客問我,道長导俘,這世上最難降的妖魔是什么峦耘? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮旅薄,結(jié)果婚禮上辅髓,老公的妹妹穿的比我還像新娘。我一直安慰自己少梁,他們只是感情好洛口,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凯沪,像睡著了一般第焰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妨马,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天挺举,我揣著相機與錄音,去河邊找鬼烘跺。 笑死豹悬,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的液荸。 我是一名探鬼主播瞻佛,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼娇钱!你這毒婦竟也來了伤柄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤文搂,失蹤者是張志新(化名)和其女友劉穎适刀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體煤蹭,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡笔喉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了硝皂。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片常挚。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖稽物,靈堂內(nèi)的尸體忽然破棺而出奄毡,到底是詐尸還是另有隱情,我是刑警寧澤贝或,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布吼过,位于F島的核電站锐秦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏盗忱。R本人自食惡果不足惜酱床,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望趟佃。 院中可真熱鬧斤葱,春花似錦、人聲如沸揖闸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汤纸。三九已至衩茸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贮泞,已是汗流浹背楞慈。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留啃擦,地道東北人囊蓝。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像令蛉,于是被迫代替她去往敵國和親聚霜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

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

  • HTTP基本原理 URI珠叔、URL蝎宇、URN(Uninform Resource) URI(Identifier):統(tǒng)...
    GHope閱讀 2,076評論 2 26
  • 代理shell 找到python的:安裝目錄下的default_settings.py文件,比如我的F:\Soft...
    費云帆閱讀 193評論 0 0
  • http協(xié)議有http0.9,http1.0祷安,http1.1和http2三個版本姥芥,但是現(xiàn)在瀏覽器使用的是htt...
    一現(xiàn)_閱讀 1,861評論 0 3
  • 放假啦!終于放假了汇鞭!真高興凉唐! 終于大家聚餐吃了火鍋,祝新年快樂霍骄!紅紅火火台囱! 發(fā)了年終獎,買衣服去...
    蟄伏的蠶蛹閱讀 130評論 0 1
  • 作者介紹:于狐 男 山西洪洞人 畢業(yè)后在省報做記者腕巡,采訪過省政府玄坦,戒毒所,電視臺绘沉,刑警隊煎楣,還有工商所等各行各業(yè),...
    于狐閱讀 402評論 0 0