第一隻python小爬蟲
前言:
網際網路就像一張無形的蜘蛛網,網站就相當於在這張網的交叉結點。而網路爬蟲就是這張網上的蜘蛛,它是一種程式,能夠利用url連結在各網站之間自動穿梭並抓取所需資料。
學了python的正規表示式之後,我便迫不及待的想要找個應用玩一下,而網路爬蟲就是個不二的選擇。下面記錄一下我寫的第一隻小爬蟲,用來自動下載網頁上的圖片。
(操作環境:32位Win8系統,執行工具:python2.7.9+Eclipse.)
正文:
1、首先,每個網站都有一個URL地址,通過這個URL可以進入各個相應的網站。我們在瀏覽網頁 點選進入其他網頁的時候,其實就是開啟其他網頁的跳轉連結URL。我們所看到的每個網頁“背後”都有著很多其他網頁的跳轉連結,我們只需滑鼠右鍵開啟網頁原始碼即可檢視到。
2、首先,我們用到的是python的urllib模組。其中有幾個方法是比較重要的:
url.urlopen(url,data=None,proxies=None,context=None) 根據URL開啟網頁,返回一個控制程式碼
url.urlopen()的物件有個方法:read() 用於讀取網頁原始碼
url.urlretrieve(url,filename=None,reporthook=None,data=None,context=None) 用於從網頁上下載資料到本地
我們首先用urlopen()開啟一個網頁,獲得一個控制程式碼;然後用控制程式碼.read()獲取網頁原始碼;再用正規表示式從網頁原始碼中找出各個圖片的URL;最後用urlretrieve(URL,'XXX.jpg')下載圖片。
程式碼如下:
import re
import urllib
def getHtml(url):
page = urllib.urlopen(url)
html1 = page.read()
return html1
def getImg(html1):
reg = 'src="(http://img.{,110}?\.jpg)"'
imglist = re.findall(reg,html1)
urllib.urlretrieve(imglist[1],'1.jpg')
str2 = raw_input('Please input URL:')
html1 = getHtml(str2)
getImg(html1)
print 'Finish!'
示例網頁:http://mm.taobao.com/689744369.htm以上程式碼只下載了一張圖片,但網頁上所有圖片的URL都已經找到 放在imglist裡面,我們只要加上個迴圈就可以下載全部圖片了。
程式碼很簡單,主要是要獲取到圖片的URL。而圖片URL的獲取 是從網頁原始碼上用正規表示式匹配出來的。
每一個網頁對應的原始碼格式都會有點差異,所以我們從不同網頁上下載圖片,最重要的就是檢視網頁原始碼,分析圖片URL的位置,然後編寫恰當的正規表示式把圖片URL拿下來。
分享兩個視訊教程,一個是智普教育的淘女郎圖片爬蟲(http://pan.baidu.com/s/1ntj2AX7),另一個是中谷教育的小爬蟲教學視訊(http://pan.baidu.com/s/1nt63lR7)
我最初看的是中谷教學視訊,初識網路小爬蟲。後來看到智普的視訊,最大的收穫就是不小心知道了淘女郎的網址(http://mm.taobao.com/689744369.htm)裡面一大片MM的照片,正愁沒個好網址來練手呢。然後智普在獲取圖片URL的時候用的是切片,這也是一種方法,但相對於正規表示式而言就顯得太繁雜了。
總結:
感覺這個小爬蟲挺好玩的,就是現在下載來的圖片沒什麼用,下完了看兩眼就都刪了。在知乎、部落格裡面搜了python爬蟲的相關資料,其實我這個小爬蟲也太小了,根本微不足道,只是下載幾張圖片而已。爬蟲的真正應用是在搜尋引擎和爬一些供資料探勘的源資料,稍微大隻一點的爬蟲應該是執行在分散式機器上的,而且能夠熟練、有效地在各個網頁中穿梭、抓取資料。任重道遠,繼續努力!
以下是我抓取整一個頁面10個淘女郎的圖片(將近兩千張),首先獲取10個淘女郎的主頁連結,進入各個淘女郎的主頁,然後再獲取圖片的URL進行下載:
import re
import urllib
global a
a = 1
def getHtml(url):
page = urllib.urlopen(url)
html1 = page.read()
return html1
def getImg(html1):
global a
reg = 'src="(http://img.{,110}?\.jpg)"'
imgre = re.compile(reg)
imglist = imgre.findall(html1)
for imgurl in imglist:
urllib.urlretrieve(imgurl,'%d.jpg'%a)
print a,imgurl
a += 1
strMain = raw_input('Please input URL:')
htmlMain = getHtml(strMain)
regMain = 'a href="(http://mm.taobao.com/\d+?\.htm)'
urlSon = re.compile(regMain)
htmlList = urlSon.findall(htmlMain)
for html in htmlList:
html0 = getHtml(html)
getImg(html0)
print 'Finish!'
示例網頁:http://mm.taobao.com/json/request_top_list.htm?type=0&page=8轉載請註明出處,謝謝!(原文連結:http://blog.csdn.net/bone_ace/article/details/44598527)
相關文章
- Python 第一個爬蟲,爬取 147 小說Python爬蟲
- python爬蟲初探--第一個python爬蟲專案Python爬蟲
- 一隻優雅的小爬蟲誕生記爬蟲
- Python爬蟲小結(轉)Python爬蟲
- python網路爬蟲_Python爬蟲:30個小時搞定Python網路爬蟲視訊教程Python爬蟲
- python 小爬蟲 DrissionPage+BeautifulSoupPython爬蟲
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- python爬蟲瞭解第一篇Python爬蟲
- 我的第一個Python爬蟲——談心得Python爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- 一隻node爬蟲的升級打怪之路爬蟲
- 如何用python爬蟲下載小說?Python爬蟲
- python就是爬蟲嗎-python就是爬蟲嗎Python爬蟲
- 用PYTHON爬蟲簡單爬取網路小說Python爬蟲
- python 爬蟲Python爬蟲
- python爬蟲Python爬蟲
- python爬蟲實操專案_Python爬蟲開發與專案實戰 1.6 小結Python爬蟲
- Python爬蟲小專案:爬一個圖書網站Python爬蟲網站
- python爬蟲之抓取小說(逆天邪神)Python爬蟲
- Python網路爬蟲實戰小專案Python爬蟲
- Python 爬蟲十六式 - 第一式:HTTP協議Python爬蟲HTTP協議
- Python 爬蟲十六式 – 第一式:HTTP協議Python爬蟲HTTP協議
- Python爬蟲--2Python爬蟲
- Python asyncio 爬蟲Python爬蟲
- Python 爬蟲系列Python爬蟲
- python爬蟲2Python爬蟲
- Python爬蟲-xpathPython爬蟲
- Python爬蟲——XPathPython爬蟲
- 第一彈:puppeteer爬蟲小demo —— 網易雲音樂爬蟲
- Python爬蟲入門教程 50-100 Python3爬蟲爬取VIP視訊-Python爬蟲6操作Python爬蟲
- Go 爬蟲小例Go爬蟲
- 爬蟲小專案爬蟲
- 3.26爬蟲小記爬蟲
- 3.22 爬蟲小記爬蟲
- Java爬蟲與Python爬蟲的區別?Java爬蟲Python
- Python爬蟲教程-01-爬蟲介紹Python爬蟲
- 什麼是Python爬蟲?python爬蟲入門難嗎?Python爬蟲
- 什麼是Python爬蟲?Python爬蟲常用框架有哪些?Python爬蟲框架
- python爬蟲是什麼?學習python爬蟲難嗎Python爬蟲