【Python3 爬蟲】14_爬取淘寶上的手機圖片
阿新 • • 發佈:2018-04-22
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_爬取淘寶上的手機圖片