1. 程式人生 > >【Python3 爬蟲】14_爬取淘寶上的手機圖片

【Python3 爬蟲】14_爬取淘寶上的手機圖片

head 並且 淘寶網 pan coff urllib images 圖片列表 pic

現在我們想要使用爬蟲爬取淘寶上的手機圖片,那麽該如何爬取呢?該做些什麽準備工作呢?

首先,我們需要分析網頁,先看看網頁有哪些規律

打開淘寶網站http://www.taobao.com/

技術分享圖片

我們可以看到左側是主題市場,將鼠標移動到【女裝/男裝/內衣】這一欄目,我們可以看到更細類的展示

技術分享圖片

假如我們現在需要爬取【羽絨服】,那麽我們進入到【羽絨服】衣服這個界面

技術分享圖片

此時查看瀏覽器地址,我們可以看到

技術分享圖片

網址復制到word或者其他地方會發生url轉碼

我們可以選中【羽絨服模塊的第1,2,3頁進行網址對比】,對比結果如下:

技術分享圖片

從上圖我們可以看出:三頁的s值都是相差60

然後我們再看下圖片地址:

技術分享圖片

圖片中標記的地方或許是兩個圖片最大的差別,於是打開源代碼搜索

圖片1搜索結果

技術分享圖片

圖片2搜索結果

技術分享圖片

從兩個網址我們發現了共同的特征:都是以"pic_url":"//開頭,網址分析到此結束,那麽我們接下來就寫代碼了。

代碼如下:

import urllib.request
import re 
#設置關鍵字
keywords = "羽絨服"
#quote函數進行url編碼(屏蔽特殊的字符)
key = urllib.request.quote(keywords)
#設置User-Agent
headers=("User_Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0
") #自定義opener opener = urllib.request.build_opener() opener.addheaders = [headers] urllib.request.install_opener(opener) #循環遍歷抓取 for i in range(0,2): url = "https://s.taobao.com/list?spm=a21bo.2017.201867-links-0.3.5af911d9rLmo4K&q="+key+"&cat=16&style=grid&seller_type=taobao&bcoffset=12&s=
"+str(i*60) #print(url) content = urllib.request.urlopen(url).read().decode("utf-8","ignore") rule = "pic_url":"//(.*?)" #正則匹配 imglist = re.compile(rule).findall(content) #獲取圖片列表 for j in range(0,len(imglist)): img = imglist[j] imgurl = "http://"+img file = "D://source//img//"+str(i)+str(j)+".jpg" urllib.request.urlretrieve(imgurl,filename=file)

爬取完畢後,我們可以打開D:\source\img查看

技術分享圖片

我們已經成功爬取,並且爬取的圖片與頁面上是一致的。

【Python3 爬蟲】14_爬取淘寶上的手機圖片