成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

爬蟲養(yǎng)成記 - 什么是網(wǎng)絡(luò)爬蟲

lucas / 1921人閱讀

摘要:趁著春節(jié),希望能寫一個(gè)小小的網(wǎng)絡(luò)爬蟲框架。網(wǎng)頁(yè)下載器接收,將頁(yè)面內(nèi)容下來??梢远x一個(gè)表,定義兩個(gè)字段和緩存數(shù)據(jù)庫(kù)網(wǎng)頁(yè)下載器網(wǎng)頁(yè)下載器就是更具下載網(wǎng)頁(yè)內(nèi)容等。常見的網(wǎng)頁(yè)下載器有是官方的基礎(chǔ)模塊。

趁著春節(jié),希望能寫一個(gè)小小的網(wǎng)絡(luò)爬蟲框架。
先定一個(gè)小目標(biāo),希望能比較優(yōu)雅地將某個(gè)網(wǎng)站上的所有圖片爬下來。
暫時(shí)先將這個(gè)爬蟲的名字叫做Squirrel,小松鼠吧。

什么是爬蟲

爬蟲其實(shí)是一種從互聯(lián)網(wǎng)上獲取信息,并且提取我們需要的信息并且儲(chǔ)存的手段。
互聯(lián)網(wǎng)就像一張網(wǎng),這種網(wǎng)是由一個(gè)個(gè)url相互連接的。一個(gè)url往往是對(duì)應(yīng)著一張網(wǎng)頁(yè)(Page). 各個(gè)頁(yè)面通過url鏈接成了一個(gè)網(wǎng)狀結(jié)構(gòu)。
那么我們從一個(gè)頁(yè)面出發(fā),分析其中的url,然后再去訪問該url對(duì)應(yīng)的頁(yè)面;再分析其中的url,并訪問。如此重復(fù)并可以爬遍所有的頁(yè)面。

簡(jiǎn)單地捋了一下,我們?nèi)绻枰獙?shí)現(xiàn)一只爬蟲,則需要實(shí)現(xiàn)如下幾個(gè)功能模塊:

url管理器
url管理器應(yīng)該維護(hù)兩個(gè)不重復(fù)的set。一個(gè)儲(chǔ)存未爬過的url,一個(gè)儲(chǔ)存已經(jīng)爬過的url。如果我們要將一個(gè)url加入未爬過的url set,那么這個(gè)url必須都不在兩組set中。

網(wǎng)頁(yè)下載器
接收url,將頁(yè)面內(nèi)容下來。

網(wǎng)頁(yè)解析器
接收頁(yè)面內(nèi)容,從中提取出結(jié)構(gòu)化的數(shù)據(jù)和url。

儲(chǔ)存器
儲(chǔ)存結(jié)構(gòu)化的數(shù)據(jù)。

下面我們一步一步來認(rèn)識(shí)我們?cè)O(shè)置的幾個(gè)模塊需要實(shí)現(xiàn)什么功能。

url管理器

url管理器主要需要維護(hù)兩個(gè)集合:

已經(jīng)抓取的url集合,我們叫做crawled_set

未抓取的url集合,我們叫做uncrawled_set
目的就是為了防止重復(fù)抓取循環(huán)抓取

我們來分解url管理器需要實(shí)現(xiàn)的功能:

判斷一個(gè)url是否已經(jīng)在容器中

判斷uncrawled_set中是否為空。為空則停止爬取。

將一個(gè)url添加到容器的uncrawled_set中

將一個(gè)url從uncrawled_set移動(dòng)到crawled_set中。

url管理器的實(shí)現(xiàn)方式有多種

將crawled_set和uncrawed_set存放在內(nèi)存中。
Python支持set數(shù)據(jù)類型,可以建立兩個(gè)set用來存放未爬和已爬url。

關(guān)系型數(shù)據(jù)庫(kù)。
可以定義一個(gè)表,定義兩個(gè)字段 url和is_crawled.

緩存數(shù)據(jù)庫(kù) redis

網(wǎng)頁(yè)下載器

網(wǎng)頁(yè)下載器就是更具url下載網(wǎng)頁(yè)內(nèi)容(html等)。
常見的網(wǎng)頁(yè)下載器有
-urllib2
urllib2是python官方的基礎(chǔ)模塊。
-request

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/38385.html

相關(guān)文章

  • 爬蟲養(yǎng)成 - 網(wǎng)絡(luò)下載器urllib2初認(rèn)識(shí)

    摘要:申明本系列文章借鑒了慕課網(wǎng)的課程,。慕課網(wǎng)是一個(gè)非常贊的學(xué)習(xí)網(wǎng)站。是下的一個(gè)模塊,在中,被拆分成和實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的下載器使用函數(shù)可以給服務(wù)器發(fā)送一個(gè)請(qǐng)求。該函數(shù)返回一個(gè)該返回的對(duì)象有三個(gè)額外的函數(shù)取得服務(wù)器返回的。默認(rèn)沒有的,請(qǐng)求方式為。 申明:本系列文章借鑒了慕課網(wǎng)的課程,http://www.imooc.com/learn/563。慕課網(wǎng)是一個(gè)非常贊的學(xué)習(xí)網(wǎng)站。 urllib2是p...

    AlphaWallet 評(píng)論0 收藏0
  • 爬蟲養(yǎng)成 - urllib2的調(diào)試和錯(cuò)誤處理

    摘要:設(shè)置和處理事實(shí)上,并不是所有發(fā)起的請(qǐng)求都能得到服務(wù)器的回應(yīng)。例如網(wǎng)絡(luò)無鏈接連接不到服務(wù)器鏈接不存在請(qǐng)求的方法不對(duì)等情況都會(huì)造成拋出錯(cuò)誤。上面說到的出錯(cuò)就會(huì)拋出。用于處理相關(guān)的錯(cuò)誤。 urllib2的timeout timeout參數(shù)用于設(shè)置超時(shí)。我們?cè)谂廊∫恍╉憫?yīng)較慢的網(wǎng)站的時(shí)候,需要設(shè)置一個(gè)比較長(zhǎng)的超時(shí)時(shí)間。 response = urllib2.urlopen(request, t...

    CoffeX 評(píng)論0 收藏0
  • 爬蟲養(yǎng)成 - 網(wǎng)絡(luò)下載器urllib2偽裝術(shù)

    摘要:發(fā)送請(qǐng)求方不希望被跟蹤。主要用來將偽裝成一個(gè)正常的瀏覽器。該字典就是說是網(wǎng)絡(luò)協(xié)議名稱,是代理的。另外一般會(huì)明確指定資源存放的位置。意思是將現(xiàn)在提交的數(shù)據(jù)存放于下第篇。請(qǐng)求刪除某一個(gè)資源。向服務(wù)器提交數(shù)據(jù)。 前一個(gè)教程我們涉及到了urllib2的一些高級(jí)應(yīng)用。這一片文章我們來比較系統(tǒng)的介紹一下。 該篇教程參考了靜覓的博文:http://cuiqingcai.com/954.html。寫這...

    Darkgel 評(píng)論0 收藏0
  • 爬蟲養(yǎng)成 - urllib2的HTTPCookieProcessor

    摘要:相當(dāng)于該用戶的檔案。上述的文字對(duì)機(jī)制描述的比較簡(jiǎn)單也并不一定完全正確。但是默認(rèn)的并不支持。中供我們使用的是。創(chuàng)建需要闖入一個(gè)存放的容器。即過期的也保存。目前博主只知道鏈接后帶的參數(shù)需要與相匹配。但是并不知道兩者具體的關(guān)系。 很多網(wǎng)站的資源需要用戶登錄之后才能獲取。我們一旦登錄后再訪問其他被保護(hù)的資源的時(shí)候,就不再需要再次輸入賬號(hào)、密碼。那么網(wǎng)站是怎么辦到的呢?一般來說,用戶在登錄之后,...

    gnehc 評(píng)論0 收藏0
  • 數(shù)據(jù)工程師妹子養(yǎng)成——數(shù)據(jù)庫(kù)篇

    摘要:是什么呀是一個(gè)和不太一樣的數(shù)據(jù)庫(kù)。懷疑是同時(shí)聯(lián)了四個(gè)集合的數(shù)據(jù)造成的。這本書的定位是和的應(yīng)用,所以有意弱化了數(shù)據(jù)庫(kù)的搭建維護(hù)和底層優(yōu)化。所以本書可能不適合數(shù)據(jù)庫(kù)工程師。 這篇文章沒有代碼,請(qǐng)放心閱讀。 程序員最寶貴的東西是生命,生命屬于程序員只有一次。一個(gè)程序員的一生應(yīng)該這樣度過:當(dāng)她回首往事的時(shí)候,她不會(huì)因?yàn)榇罱ōh(huán)境浪費(fèi)時(shí)間而悔恨,也不會(huì)因?yàn)榧簾o法運(yùn)行而羞恥。這樣,在她開發(fā)的時(shí)候,...

    yexiaobai 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

lucas

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<