Python爬蟲基礎(chǔ)1--urllib

學(xué)習(xí)python完基礎(chǔ),有些迷茫.眼睛一閉,一種空白的窒息源源不斷而來.還是缺少練習(xí),遂拿爬蟲來練練手.學(xué)習(xí)完斯巴達(dá)python爬蟲課程后,將心得整理如下,供后續(xù)翻看.整篇筆記主要分以下幾個(gè)部分:

1.做一個(gè)簡單的爬蟲程序
2.小試牛刀--抓取百度貼吧圖片
3.總結(jié)

1.做一個(gè)簡單的爬蟲程序

首先環(huán)境描述

Device: Mba 2012 Yosemite 10.10.1
Python: python 2.7.9
編輯器: Sublime Text 3

這個(gè)沒有什么好說的,直接上代碼吧!

'''
@ urllib為python自帶的一個(gè)網(wǎng)絡(luò)庫
@ urlopen為urllib的一個(gè)方法,用于打開一個(gè)連接并抓取網(wǎng)頁,
  然后通過read()方法把值賦給read()
'''
import urllib

url = "http://www.lifevc.com"#多嘴兩句,為什么要選lifevc呢,主要是最近它很惹我.
html = urllib.urlopen(url)
content = html.read()
html.close()
#可以通過print打印出網(wǎng)頁內(nèi)容
print content

很簡單,基本上沒有可說的,這個(gè)也就是python的魅力,幾行代碼就完成.
當(dāng)然我們僅僅抓取網(wǎng)頁,沒有實(shí)在的價(jià)值.接下來我們就開始做一點(diǎn)有意義的事情.

2.小試牛刀

抓取百度貼吧圖片

其實(shí)也很簡單,因?yàn)橐トD片,還需要先分析一下網(wǎng)頁源代碼
(這里以知道基本html知識(shí),瀏覽器以chrome為例)
如圖,這里簡要說下步驟,請(qǐng)參考.

打開網(wǎng)頁,右鍵點(diǎn)擊,選擇"inspect Element"(最下面這一項(xiàng))
點(diǎn)擊下面彈起來的框框最左邊那個(gè)問號(hào),問號(hào)會(huì)變成藍(lán)色
移動(dòng)鼠標(biāo)去點(diǎn)擊我們想要抓取的圖片(一個(gè)萌妹子)
如圖,我們就可以圖片在源碼中的位置了

圖片源碼分析
圖片源碼分析

下面將源碼相關(guān)拷貝出來

<img class="BDE_Image" src="http://imgsrc.baidu.com/forum/w%3D580/
sign=3d5aacaab21c8701d6b6b2ee177e9e6e/17a6d439b6003af329aece2e342ac65c1138b6d8.
jpg" height="840" width="560" style="cursor: url(http://tb2.bdstatic.com/tb/
static-pb/img/cur_zin.cur), pointer;">

經(jīng)分析和對(duì)比(這里略掉),基本上可以看到要抓取的圖片幾個(gè)特征:

1.在img標(biāo)簽下
2.在名為BDE_Image的類下面
3.圖片格式為jpg
正則表達(dá)式后續(xù)我會(huì)更新,請(qǐng)關(guān)注

依照上述判斷,直接上代碼

'''
@本程序用來下載百度貼吧圖片
@re 為正則說明庫
'''
import urllib
import re

# 獲取網(wǎng)頁html信息
url = "http://tieba.baidu.com/p/2336739808"
html = urllib.urlopen(url)
content = html.read()
html.close()

# 通過正則匹配圖片特征,并獲取圖片鏈接
img_tag = re.compile(r'class="BDE_Image" src="(.+?\.jpg)"')
img_links = re.findall(img_tag, content)

# 下載圖片 img_counter為圖片計(jì)數(shù)器(文件名)
img_counter = 0
for img_link in img_links:
    img_name = '%s.jpg' % img_counter
    urllib.urlretrieve(img_link, "http://Users//Sean//Downloads//tieba//%s" %img_name)
    img_counter += 1

如圖,我們就抓取你懂的圖片

百度貼吧抓取圖片
百度貼吧抓取圖片

3.總結(jié)

如上兩節(jié),我們就很輕松的就可以網(wǎng)頁或者圖片.
補(bǔ)充一點(diǎn)小技巧,如果遇到不是很明白的庫或者方法,可以通過以下方法進(jìn)行初步了解.

dir(urllib)                     #查看當(dāng)前庫有哪些方法
help(urllib.urlretrieve)        #查看跟當(dāng)前方法相關(guān)的作用或者參數(shù),官方比較權(quán)威

或者https://docs.python.org/2/library/index.html進(jìn)項(xiàng)相關(guān)搜索.
當(dāng)然百度也可以,但是效率太低.建議使用 http://xie.lu 進(jìn)行相關(guān)搜索(你懂了,絕對(duì)滿意).
這一節(jié)我們講解如何抓取網(wǎng)頁和下載圖片,在下一節(jié)里面我們會(huì)講解如何抓取有限制抓取的網(wǎng)站.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,068評(píng)論 25 709
  • 爬蟲文章 in 簡書程序員專題: like:128-Python 爬取落網(wǎng)音樂 like:127-【圖文詳解】py...
    喜歡吃栗子閱讀 22,729評(píng)論 4 411
  • 能夠生長在這個(gè)時(shí)代,真的是很幸運(yùn)! 足不出戶,便可知天下! 2000多年前的圣人——老子,做到了! 做為他的子孫—...
    夢醒時(shí)分喜悅富足閱讀 417評(píng)論 0 0
  • 當(dāng)我們有了太多追求,我們的心就會(huì)亂作一團(tuán)。我們不妨試試追求一種值得讓自己喜歡而為之信仰的。你總會(huì)發(fā)現(xiàn)你所追求的正是...
    本乘閱讀 86評(píng)論 0 0
  • 被春風(fēng)吹過的大地 煥發(fā)出應(yīng)有的生機(jī) 厚重而遼闊的沃野 本不該在寂寥中沉寂 在曠野中深深的呼吸 在風(fēng)中展開雙臂 去嗅...
    遙遠(yuǎn)的星光閱讀 942評(píng)論 0 5

友情鏈接更多精彩內(nèi)容