下载搜索的图片,主要难点在与淘宝页面中复杂的图片地址,在源码中查找图片地址时,建议使用火狐浏览器。

import urllib.request
import re
import ssl

#全局取消证书验证
ssl._create_default_https_context = ssl._create_unverified_context

#设置淘宝搜索的关键词
keyword = urllib.request.quote("毛衣")

#将爬虫伪装成火狐浏览器
headers=("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:57.0) Gecko/20100101 Firefox/57.0")

#创建一个opener对象 
opener = urllib.request.build_opener()

#为opener设置header
opener.addheaders = [headers]

#将opener设为全局
urllib.request.install_opener(opener)

#为了方便测试,仅下载两页的数据
for i in range(0,2):

    #把关键词添加到URL中并请求数据
    url = "https://s.taobao.com/search?q="+ keyword +"&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20180121&ie=utf8&bcoffset=4&ntoffset=4&p4ppushleft=1%2C48&s="+str(44*i)
    data = urllib.request.urlopen(url).read().decode("utf-8","ignore")

    #测试是否请求到数据
    print(len(data))

    #使用正则表达式进行匹配
    pat = '"pic_url":"//(.*?)"'
    imgs  = re.compile(pat).findall(data)

    for j in range(0,len(imgs)):

        #用匹配到的网址建立完整的URL,并直接下载到本地
        thisurl = "http://" + imgs[j]
        file = "/Users/Rocky1/Desktop/imgs/" + str(i) + "-" + str(j) + ".jpg"
        urllib.request.urlretrieve(thisurl,file)


Logo

电商企业物流数字化转型必备!快递鸟 API 接口,72 小时快速完成物流系统集成。全流程实战1V1指导,营造开放的API技术生态圈。

更多推荐