Python爬蟲從0開始學(xué)(1)

在簡書寫Python爬蟲的文章超過30篇了(《Python爬蟲文章專輯》)囚枪,上周加了不少想學(xué)習(xí)Python爬蟲的朋友,居然有兩位簡友說劳淆,是看我的文章學(xué)會Python的链沼,還有一位朋友說,一晚上一直在看我寫的Scrapy文章(有15篇文章)沛鸵。

一直都有一些完合零基礎(chǔ)的童鞋加我括勺,想學(xué)習(xí)Python。我就想整理一個Python從0開始學(xué)的系列文章曲掰,有一段時間還想把這個專題取名為“適合女孩子學(xué)的Python教程”(Python Girls)疾捍,就是要進(jìn)一步降低學(xué)習(xí)的門檻,做到有趣栏妖,實用拾氓,能快速應(yīng)用。

今天的文章其實不是完全從0開始底哥,是適合了解一些編程語言,或者在大學(xué)學(xué)會C語言課程房官。Python語言的學(xué)習(xí)方法和環(huán)境搭建準(zhǔn)備趾徽,我會另寫一篇。

如果你使用的是Mac或Linux系統(tǒng)翰守,是自帶Python環(huán)境的孵奶。

今天先從一個小爬蟲,一段小代碼開始蜡峰,實現(xiàn)批量下載圖片的功能了袁。把貼吧這個頁面上的圖片都下載下來。

http://tieba.baidu.com/p/3205263090

一湿颅、實現(xiàn)的流程

只有3步:
1)拿到網(wǎng)頁的源碼
2)匹配出網(wǎng)頁中圖片的url
3)把圖片保存到本地(電腦中)

二载绿、實現(xiàn)過程解析

1)我們可以通過在網(wǎng)頁上點擊右鍵,“查看頁面源代碼”油航,來看一個網(wǎng)頁的背后是由這些代碼組成的崭庸。

這太復(fù)雜了

是的,這太復(fù)雜了,我們也不必去讀它怕享。第一步执赡,就是要在程序中拿到它。在Python中很簡單函筋,只要3行代碼就可以實現(xiàn):

import urllib
page = urllib.urlopen('http://tieba.baidu.com/p/3205263090')
html = page.read()
print html

在終端上運行一下沙合,就是這樣,拿到網(wǎng)頁的源碼:


第一行代碼跌帐,是導(dǎo)入urllib模塊首懈,urllib是Python用于網(wǎng)絡(luò)訪問的基礎(chǔ)模塊。urlopen()方法就是打開一個url含末,返回一個文件對象猜拾,然后就可以進(jìn)行類似文件對象的操作。

2)要找出文章中的圖片地址進(jìn)行正則表達(dá)式的匹配佣盒。這是剛開始學(xué)習(xí)的難點挎袜。
可以理解成,網(wǎng)頁中每個圖片的地址(url)不一樣肥惭,要找出他們的規(guī)律盯仪。

在頁面上的圖片右鍵“查看元素”,找到這個圖片對應(yīng)的代碼:

右鍵查看元素

紅色框中對應(yīng)的 scr= 后面的就是我們要得到的內(nèi)容蜜葱。

reg = r'src="([.*\S]*\.jpg)" pic_ext="jpeg"'

這行代碼不太理解的話全景,先拷過來∏6冢可以理解成為這個就是能對得上上面紅色框中src="xxxxoooo" pic_ext="jpeg"的模子爸黄。

這樣看來,正則表達(dá)式是一個學(xué)習(xí)的重點揭鳞。

3)注意我們找到的要下載的圖片是多個炕贵,用循環(huán)迭代出來,一個個保存到我們的電腦就可以了

#生成一個我們所需要的Pattern(正則表達(dá)式)實例
imagereg = re.compile(reg)

#以列表形式返回全部能匹配的子串野崇。
imgurls = re.findall(imagereg, html)

x = 1
for imgurl in imgurls:
    urllib.urlretrieve(imgurl, '/Users/apple/Desktop/a/%s.jpg' % x)
    x +=1

urlretrieve()方法上將url定位到的html文件下載到你本地的硬盤中称开。第一個參數(shù)是要下載的url,第二個參數(shù)是保存的路徑+文件名乓梨。注意你寫的時候要改成你電腦上的路徑鳖轰。

完整的代碼:

#coding=utf-8
import re
import urllib

# 獲取網(wǎng)頁源代碼的方法
def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

html =  getHtml('http://tieba.baidu.com/p/3205263090')

reg = r'src="([.*\S]*\.jpg)" pic_ext="jpeg"'

#正則表達(dá)式的字符串形式,編譯為Pattern實例
imagereg = re.compile(reg)

#搜索string,以列表形式返回全部能匹配的子串
imgurls = re.findall(imagereg, html)

x = 1
for imgurl in imgurls:
    urllib.urlretrieve(imgurl, '/Users/apple/Desktop/a/%s.jpg' % x)
    x +=1

看一下運行的結(jié)果扶镀。


總結(jié)一下:
  1. Python對網(wǎng)絡(luò)訪問的模塊封裝得很好蕴侣,代碼少。
  • 需要對網(wǎng)頁了解一些臭觉,正則表達(dá)式在這里是關(guān)鍵睛蛛,我們后面還有簡單的方法鹦马。
  • 學(xué)習(xí)一個東西從興趣開始,先做個小東西出來忆肾,這樣學(xué)起來比較快荸频。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市客冈,隨后出現(xiàn)的幾起案子旭从,更是在濱河造成了極大的恐慌,老刑警劉巖场仲,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件和悦,死亡現(xiàn)場離奇詭異,居然都是意外死亡渠缕,警方通過查閱死者的電腦和手機鸽素,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亦鳞,“玉大人馍忽,你說我怎么就攤上這事⊙嗖睿” “怎么了遭笋?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長徒探。 經(jīng)常有香客問我瓦呼,道長,這世上最難降的妖魔是什么测暗? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任央串,我火速辦了婚禮,結(jié)果婚禮上碗啄,老公的妹妹穿的比我還像新娘蹋辅。我一直安慰自己,他們只是感情好挫掏,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秩命,像睡著了一般尉共。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弃锐,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天袄友,我揣著相機與錄音,去河邊找鬼霹菊。 笑死剧蚣,一個胖子當(dāng)著我的面吹牛支竹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸠按,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼礼搁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了目尖?” 一聲冷哼從身側(cè)響起馒吴,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瑟曲,沒想到半個月后饮戳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡洞拨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年扯罐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烦衣。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡歹河,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出琉挖,到底是詐尸還是另有隱情启泣,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布示辈,位于F島的核電站寥茫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏矾麻。R本人自食惡果不足惜纱耻,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望险耀。 院中可真熱鬧弄喘,春花似錦、人聲如沸甩牺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贬派。三九已至急但,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搞乏,已是汗流浹背波桩。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留请敦,地道東北人镐躲。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓储玫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親萤皂。 傳聞我的和親對象是個殘疾皇子撒穷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

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