學習python完基礎(chǔ),有些迷茫.眼睛一閉,一種空白的窒息源源不斷而來.還是缺少練習,遂拿爬蟲來練練手.學習完斯巴達python爬蟲課程后,將心得整理如下,供后續(xù)翻看.整篇筆記主要分以下幾個部分:
1.做一個簡單的爬蟲程序
2.小試牛刀--抓取百度貼吧圖片
3.總結(jié)
1.做一個簡單的爬蟲程序
首先環(huán)境描述
Device: Mba 2012 Yosemite 10.10.1
Python: python 2.7.9
編輯器: Sublime Text 3
這個沒有什么好說的,直接上代碼吧!
'''
@ urllib為python自帶的一個網(wǎng)絡(luò)庫
@ urlopen為urllib的一個方法,用于打開一個連接并抓取網(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
很簡單,基本上沒有可說的,這個也就是python的魅力,幾行代碼就完成.
當然我們僅僅抓取網(wǎng)頁,沒有實在的價值.接下來我們就開始做一點有意義的事情.
2.小試牛刀
抓取百度貼吧圖片
其實也很簡單,因為要抓取圖片,還需要先分析一下網(wǎng)頁源代碼
(這里以知道基本html知識,瀏覽器以chrome為例)
如圖,這里簡要說下步驟,請參考.
打開網(wǎng)頁,右鍵點擊,選擇"inspect Element"(最下面這一項)
點擊下面彈起來的框框最左邊那個問號,問號會變成藍色
移動鼠標去點擊我們想要抓取的圖片(一個萌妹子)
如圖,我們就可以圖片在源碼中的位置了
下面將源碼相關(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)分析和對比(這里略掉),基本上可以看到要抓取的圖片幾個特征:
1.在img標簽下
2.在名為BDE_Image的類下面
3.圖片格式為jpg
正則表達式后續(xù)我會更新,請關(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為圖片計數(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)頁或者圖片.
補充一點小技巧,如果遇到不是很明白的庫或者方法,可以通過以下方法進行初步了解.
dir(urllib) #查看當前庫有哪些方法
help(urllib.urlretrieve) #查看跟當前方法相關(guān)的作用或者參數(shù),官方比較權(quán)威
或者https://docs.python.org/2/library/index.html進項相關(guān)搜索.
當然百度也可以,但是效率太低.建議使用 http://xie.lu 進行相關(guān)搜索(你懂了,絕對滿意).
這一節(jié)我們講解如何抓取網(wǎng)頁和下載圖片,在下一節(jié)里面我們會講解如何抓取有限制抓取的網(wǎng)站.