python爬虫:淘宝图片爬虫

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,用浏览器打开即可看到的高清大图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kiMroQDV-1584149980058)(attachment:image.png)]

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"


发布了47 篇原创文章 · 获赞 35 · 访问量 1816

猜你喜欢

转载自blog.csdn.net/weixin_43412569/article/details/104855018