01-最簡(jiǎn)單的爬蟲(chóng)

什么是網(wǎng)絡(luò)爬蟲(chóng)

網(wǎng)絡(luò)爬蟲(chóng)(又被稱為網(wǎng)頁(yè)蜘蛛丁存,網(wǎng)絡(luò)機(jī)器人肩杈,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁(yè)追逐者)解寝,是一種按照一定的規(guī)則扩然,自動(dòng)地抓取萬(wàn)維網(wǎng)信息的程序或者腳本(——百度百科)。
所以聋伦,網(wǎng)絡(luò)爬蟲(chóng)是一段具有以下功能的程序:
1夫偶、能夠根據(jù)規(guī)則自動(dòng)搜索獲得網(wǎng)址;
1嘉抓、能夠訪問(wèn)指定網(wǎng)址的網(wǎng)絡(luò)資源并下載索守;
2、能夠?qū)ο螺d的資源進(jìn)行解析抑片,抓取指定信息卵佛。

什么時(shí)候用爬蟲(chóng)

假如我們要對(duì)比京東和淘寶的物價(jià)。對(duì)比一個(gè)商品很簡(jiǎn)單,我們分分鐘就可以完成一個(gè)商品的對(duì)比截汪,但是京東和淘寶上的商品有多少疾牲?如果我想得到所有同類商品的比價(jià),人工一個(gè)個(gè)對(duì)比顯然是不現(xiàn)實(shí)的衙解,這時(shí)候我們就可以使用爬蟲(chóng)來(lái)幫我們做這個(gè)工作阳柔。對(duì)比一個(gè)物價(jià)我們要做兩步:1、訪問(wèn)商品頁(yè)面蚓峦;2舌剂、對(duì)比商品價(jià)格。這正是爬蟲(chóng)的兩個(gè)功能暑椰,訪問(wèn)商品頁(yè)面和抓取商品類別與價(jià)格數(shù)據(jù)霍转。而要訪問(wèn)所有商品則是網(wǎng)絡(luò)爬蟲(chóng)的另一個(gè)功能——自動(dòng)搜索網(wǎng)址。
所以我們?cè)谝韵虑闆r中使用網(wǎng)絡(luò)爬蟲(chóng):
1一汽、需要獲得大量相互關(guān)聯(lián)的網(wǎng)絡(luò)資源中的指定數(shù)據(jù)避消;
2、要訪問(wèn)的數(shù)據(jù)是爬蟲(chóng)使用者可以通過(guò)合法渠道訪問(wèn)到的召夹。

Python3實(shí)現(xiàn)最簡(jiǎn)單的爬蟲(chóng)

廢話不多說(shuō)直接上干貨岩喷,我們先實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的爬蟲(chóng),只具有下載指定URL網(wǎng)頁(yè)功能的小爬蟲(chóng)监憎,我們?cè)谥笠稽c(diǎn)點(diǎn)完善它纱意。

準(zhǔn)備工作

在此我們假設(shè)您已經(jīng)做好以下準(zhǔn)備:
1、安裝了Python3并且有一定的Python基礎(chǔ)(能讀懂代碼就行)
2鲸阔、安裝了pip
3妇穴、具有網(wǎng)絡(luò)

代碼

#/usr/lib/python3
from urllib import request
def download(url):
    resp = request.urlopen(url)
    result = resp.read()
    result = result.decode("utf-8")
    return result

print(download("http://www.jd.com"))

你木有看錯(cuò),就是這么簡(jiǎn)單……是不是很驚喜隶债,仿佛寫(xiě)了個(gè)helloworld。接下來(lái)讓我們來(lái)聊一聊這段簡(jiǎn)短的代碼跑筝。

要引入的庫(kù)

編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)我們要使用到urllib包死讹,我們可以通過(guò)這個(gè)網(wǎng)址獲得urllib庫(kù)的介紹【https://docs.python.org/3/library/urllib.html#module-urllib】,中文版在這里【http://python.usyiyi.cn/translate/python_352/library/urllib.html#module-urllib】曲梗,這是一個(gè)用于URL處理的包赞警。其中包含的request模塊定義了打開(kāi)URL的函數(shù)和類。這個(gè)包是Python3 自帶的虏两,無(wú)需下載愧旦。

代碼解釋

好吧,沒(méi)什么好解釋的定罢,我們寫(xiě)了一個(gè)download方法笤虫,當(dāng)傳入一個(gè)正確的URL的時(shí)候返回下載下來(lái)的資源內(nèi)容。特別要注意的是,要記得將編碼轉(zhuǎn)換成UTF-8

完善

就像上面說(shuō)的我們的這個(gè)方法是沒(méi)有容錯(cuò)能力的琼蚯,我們需要做一些改善酬凳,使得輸入錯(cuò)誤的URL的時(shí)候程序依然能夠運(yùn)行,并且給出一些友好的提示遭庶。

#/usr/lib/python3
from urllib import request
from urllib import error
def download(url):
    print('正在下載:',url)
    try:
        resp = request.urlopen(url)
        result = resp.read()
        result = result.decode("utf-8")
    except error.URLError as e:
        print('下載出現(xiàn)錯(cuò)誤 : ', e)
        result = None
    return result

print(download("http://www.jd.com"))
print(download("http://www.j.com"))

如此當(dāng)輸入一個(gè)錯(cuò)誤的URL的時(shí)候就返回None并且給出提示宁仔。
好啦,最簡(jiǎn)單的爬蟲(chóng)就是這樣峦睡,之后我們一點(diǎn)點(diǎn)地完善它翎苫。
~~~預(yù)知后事如何,且聽(tīng)下集分解~~~

下集預(yù)告

這一段小小的代碼還是有邏輯上的問(wèn)題的榨了,下集修改煎谍!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市阻逮,隨后出現(xiàn)的幾起案子粱快,更是在濱河造成了極大的恐慌,老刑警劉巖叔扼,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件事哭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡瓜富,警方通過(guò)查閱死者的電腦和手機(jī)鳍咱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)与柑,“玉大人谤辜,你說(shuō)我怎么就攤上這事〖叟酰” “怎么了丑念?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)结蟋。 經(jīng)常有香客問(wèn)我脯倚,道長(zhǎng),這世上最難降的妖魔是什么嵌屎? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任推正,我火速辦了婚禮,結(jié)果婚禮上宝惰,老公的妹妹穿的比我還像新娘植榕。我一直安慰自己,他們只是感情好尼夺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布尊残。 她就那樣靜靜地躺著炒瘸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夜郁。 梳的紋絲不亂的頭發(fā)上什燕,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音竞端,去河邊找鬼屎即。 笑死,一個(gè)胖子當(dāng)著我的面吹牛事富,可吹牛的內(nèi)容都是我干的技俐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼统台,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼雕擂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起贱勃,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤井赌,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后贵扰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體仇穗,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年戚绕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纹坐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡舞丛,死狀恐怖耘子,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情球切,我是刑警寧澤谷誓,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站吨凑,受9級(jí)特大地震影響片林,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怀骤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望焕妙。 院中可真熱鬧蒋伦,春花似錦、人聲如沸焚鹊。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至研叫,卻和暖如春锤窑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嚷炉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工渊啰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人申屹。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓绘证,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親哗讥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嚷那,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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