在淘寶網中搜索某種商品之後會跳轉到新的網頁,網頁的底部有可以進行換頁,爬蟲之前我們需要找出不同頁碼之間是否存在某種規律。
https://s.taobao.com/search?q=%E7%9F%AD%E8%A3%99&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306
https://s.taobao.com/search?q=%E7%9F%AD%E8%A3%99&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=4&ntoffset=4&p4ppushleft=1%2C48&s=44
https://s.taobao.com/search?q=%E7%9F%AD%E8%A3%99&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=4&ntoffset=4&p4ppushleft=1%2C48&s=88
可以發現,第一頁的url中是沒有s=?的,從第二頁開始s=44,第三頁s=88,找到規律之後可以通過循環進行跨頁爬取了
import urllib.request
import re
keyname='短裙'
keyname=urllib.request.quote(keyname)
headers=('User-Agent',"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36")
opener=urllib.request.build_opener()
opener.addheaders=[headers]
urllib.request.install_opener(opener)
for i in range(0,2):
url='https://s.taobao.com/search?q='+keyname+'&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=4&ntoffset=4&p4ppushleft=1%2C48&s='+str(i*44)
data=urllib.request.urlopen(url).read().decode('utf-8','ignore')
pat='pic_url":"//(.*?)"'
imagelist=re.compile(pat).findall(data)
for j in range(0,len(imagelist)):
thisimage=imagelist[j]
thisurl='http://'+thisimage
file='D:/1python/淘寶/'+str(i)+str(j)+'.jpg'
urllib.request.urlretrieve(thisurl,file)