小白菜學爬蟲(三):第一個小爬蟲

向右奔跑老師寫了《007 - Python簡單爬蟲 - 正則表達式》爬取了貼吧中的圖片扰柠,留了一個任務是爬取花瓣上面的圖片

實現(xiàn)步驟

根據(jù)老師的貼吧示例粉铐,簡單分析花瓣爬蟲的如下:
1、獲取url對應的網(wǎng)頁源代碼
2卤档、根據(jù)網(wǎng)頁圖片的網(wǎng)址特征蝙泼,確定正則表達式
3、利用正則中的findall方法進行圖片地址的提取
4劝枣、遍歷圖片地址用urlretrieve獲取

分析過程:

老師文章中已經(jīng)給出了正則表達式

<img src="([.\S])"

仔細分析發(fā)現(xiàn)汤踏,這種匹配無法區(qū)分圖片跟頭像。下載下來有很多無用的信息舔腾。


示意圖
頭像示意圖

對比圖片和頭像的img標簽溪胶,發(fā)現(xiàn)圖片都有指定寬度width


主圖
縮略圖

而頭像怎沒有指定width

頭像

故修改正則為: r'<img src="([.\S])" width' 去除掉沒有width的img標簽。

實現(xiàn)代碼

# coding:utf-8
from urllib import request
import re

# 獲取網(wǎng)頁源代碼的方法
def getHtml(url):
    page = request.urlopen(url)
    html = page.read().decode('utf-8') # Python3需要decode
    return html

html =  getHtml('http://huaban.com/pins/1120072731/')
reg = r'<img src="([.*\S]*)" width'
imgurls = re.findall(reg, html)  #用正則匹配到的圖片路徑的集合

x = 1
for imgurl in imgurls:
    imgurl ='http:'+ str(imgurl)
    print (imgurl)  # 打印查看一下是不是 每個圖片的URL
    request.urlretrieve(imgurl, 'images2/%s.jpg' % x)
    print ("正在下載第 %d 張"%x)
    x +=1

注意事項

因為我用的版本是python3版本稳诚,代碼存在些許差異,比方說:
1哗脖、在Python3中print為函數(shù):print (imgurl)
2、urlopen在request下:request.urlopen(url)
修改完成后運行程序扳还,報錯:TypeError: cannot use a string pattern on a bytes-like object
查詢資料得知python3中urllib.read返回的是bytes對象才避,不是string,得把它decode轉(zhuǎn)換成string對象:page.read().decode('utf-8')

運行結(jié)果

采集結(jié)果

存在缺陷

現(xiàn)在采集到的還只是圖片的縮略圖,沒有能夠深入到畫板的主頁面去采集原圖氨距。后面考慮獲取到畫板縮略圖的源地址桑逝,去源地址進行原圖片的獲取。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末俏让,一起剝皮案震驚了整個濱河市楞遏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舆驶,老刑警劉巖橱健,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沙廉,居然都是意外死亡拘荡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進店門撬陵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來珊皿,“玉大人,你說我怎么就攤上這事巨税◇ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵草添,是天一觀的道長驶兜。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么抄淑? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任屠凶,我火速辦了婚禮,結(jié)果婚禮上肆资,老公的妹妹穿的比我還像新娘矗愧。我一直安慰自己,他們只是感情好郑原,可當我...
    茶點故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布唉韭。 她就那樣靜靜地躺著,像睡著了一般犯犁。 火紅的嫁衣襯著肌膚如雪属愤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天栖秕,我揣著相機與錄音春塌,去河邊找鬼。 笑死簇捍,一個胖子當著我的面吹牛只壳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播暑塑,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼吼句,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了事格?” 一聲冷哼從身側(cè)響起惕艳,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎驹愚,沒想到半個月后远搪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡逢捺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年谁鳍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劫瞳。...
    茶點故事閱讀 40,769評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡倘潜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出志于,到底是詐尸還是另有隱情涮因,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布伺绽,位于F島的核電站养泡,受9級特大地震影響嗜湃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瓤荔,卻給世界環(huán)境...
    茶點故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一净蚤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧输硝,春花似錦、人聲如沸程梦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屿附。三九已至郎逃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挺份,已是汗流浹背褒翰。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留匀泊,地道東北人优训。 一個月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像各聘,于是被迫代替她去往敵國和親揣非。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,781評論 2 361

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

  • 1 前言 作為一名合格的數(shù)據(jù)分析師躲因,其完整的技術知識體系必須貫穿數(shù)據(jù)獲取早敬、數(shù)據(jù)存儲、數(shù)據(jù)提取大脉、數(shù)據(jù)分析搞监、數(shù)據(jù)挖掘、...
    whenif閱讀 18,083評論 45 523
  • 聲明:本文講解的實戰(zhàn)內(nèi)容镰矿,均僅用于學習交流琐驴,請勿用于任何商業(yè)用途! 一衡怀、前言 強烈建議:請在電腦的陪同下棍矛,閱讀本文...
    Bruce_Szh閱讀 12,725評論 6 28
  • 一、前言 這是我第一次寫文章抛杨,作為一個非計算機够委,編程類專業(yè)的大二學生,我希望能夠給像我這樣的入門的朋友一些幫助怖现,也...
    梅花鹿數(shù)據(jù)閱讀 2,556評論 5 11
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理茁帽,服務發(fā)現(xiàn)玉罐,斷路器,智...
    卡卡羅2017閱讀 134,715評論 18 139
  • 文件切換 導航 目錄樹 分屏操作 書簽 選取 編輯和刪除文本 大小寫轉(zhuǎn)換 刪除和剪切 多光標和多處選取 括號跳轉(zhuǎn) ...
    _Never_閱讀 588評論 0 2