學(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)站.