1.淘宝网址规律
https: //s.taobao.com /list?spm=a21bo.2017. 201867-links-0.6.5af911d9OXqjyt&q=搜索词&cat=16&style=grid&seller_type=taobao&bcoffset=0&s=(页码-1)*60
1.1 注意:
源代码中的数据可以直接爬取;源代码中没有,但是网页中有的信息是隐藏在js文件中,此时需要抓包。
1.2 复制淘宝网页上的图片网址:
https://g-search1.alicdn.com/img/bao/uploaded/i4/imgextra/i3/224680019/O1CN01uIilBc1C0k57Kg2Kv_!!0-saturn_solar.jpg_250x250.jpg_.webp 此时看到的只是一个小图,不是高清图。解析该网站:
图片在服务器的保存位置,不用管:
https://g-search1.alicdn.com/img/bao/uploaded/i4/imgextra/i3/224680019/:
照片尺寸等次要信息:
jpg_250x250.jpg_.webp
照片数据的核心部分:O1CN01uIilBc1C0k57Kg2Kv_!!0-saturn_solar
1.3 在源代码中搜索照片核心数据:
O1CN01uIilBc1C0k57Kg2Kv_!!0-saturn_solar,会发现照片的url,如下图。故知"pic_url":"//g-search1.alicdn.com/img/bao/uploaded/i4/imgextra/i3/224680019/O1CN01uIilBc1C0k57Kg2Kv_!!0-saturn_solar.jpg"。在前面加上https,用浏览器打开即可看到的高清大图。
1.3 通过正则提取照片URL : “pic_url”:"//(.*?)"
import urllib.request
import re
keyname='短裙'
key=urllib.request.quote(keyname)
for i in range(0,5):
url='https://s.taobao.com/list?q="+key+"&cat=16&style=grid&seller_type=taobao&bcoffset=0&s='+str(i*60)
data=urllib.request.urlopen(url).read().decode('utf-8','ignore')
#正则提取
pat='pic_url":"//(.*?)"'
imageurl=re.compile(pat).findall(data)
print(imageurl)
import urllib.request
import re
keyname='短裙'
key=urllib.request.quote(keyname)
headers=('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0')
opener=urllib.request.build_opener()
opener.addheaders=[headers]
urllib.request.install_opener(opener)
for i in range(0,5):
url='https://s.taobao.com/list?q="+key+"&cat=16&style=grid&seller_type=taobao&bcoffset=0&s='+str(i*60)
data=urllib.request.urlopen(url).read().decode('utf-8','ignore')
#正则提取
pat='"pic_url":"//(.*?)"'
imageurl=re.compile(pat).findall(data)
print(imageurl)
import urllib.request
import re
keyname="神舟"
key=urllib.request.quote(keyname) #编码
#尝试爬取前三页内容
for i in range(0,3):
#构造页面URL
url="https://s.taobao.com/search?q="+key+"&s=44"
data=urllib.request.urlopen(url).read().decode("utf-8","ignore")
pat='pic_url":"//(.*?)"'
#获得图片URL
imagelist=re.compile(pat).findall(data)
print(imagelist)
import urllib.request
import re
keyname="神舟"
key=urllib.request.quote(keyname) #编码
#尝试爬取前三页内容
for i in range(0,3):
#构造页面URL
url="https://s.taobao.com/search?q="+key+"&s=44"
data=urllib.request.urlopen(url).read().decode("utf-8","ignore")
pat='pic_url":"//(.*?)"'
#获得图片URL
imagelist=re.compile(pat).findall(data)
for j in range(0,len(imagelist)):
thisimg=imagelist[j]
#构造图片URL
thisimgurl="http://"+thisimg
file=" F:/jupyterpycodes/python_pachongfenxi/result/taobaoIMG/"+str(i)+str(j)+".jpg"