python爬虫淘宝手机_【Python3 爬虫】14_爬取淘宝上的手机图片
現在我們想要使用爬蟲爬取淘寶上的手機圖片,那么該如何爬取呢?該做些什么準備工作呢?
首先,我們需要分析網頁,先看看網頁有哪些規律
我們可以看到左側是主題市場,將鼠標移動到【女裝/男裝/內衣】這一欄目,我們可以看到更細類的展示
假如我們現在需要爬取【羽絨服】,那么我們進入到【羽絨服】衣服這個界面
此時查看瀏覽器地址,我們可以看到
網址復制到word或者其他地方會發生url轉碼
我們可以選中【羽絨服模塊的第1,2,3頁進行網址對比】,對比結果如下:
從上圖我們可以看出:三頁的s值都是相差60
然后我們再看下圖片地址:
圖片中標記的地方或許是兩個圖片最大的差別,于是打開源代碼搜索
圖片1搜索結果
圖片2搜索結果
從兩個網址我們發現了共同的特征:都是以"pic_url":"//開頭,網址分析到此結束,那么我們接下來就寫代碼了。
代碼如下:
importurllib.requestimportre#設置關鍵字
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 inrange(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查看
我們已經成功爬取,并且爬取的圖片與頁面上是一致的。
原文:https://www.cnblogs.com/OliverQin/p/8907248.html
總結
以上是生活随笔為你收集整理的python爬虫淘宝手机_【Python3 爬虫】14_爬取淘宝上的手机图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【编译原理】为什么编程语言中,标识符不能
- 下一篇: python两个集合相减_python集