python批量下载图片

生活中,我们时常会遇到批量下载图片的情况,不想一个个手动保存图片?让我们以淘宝图片为例,用python批量下载心仪的图片。

一、本篇目标:

1、 抓取淘宝搜索页面的所有图片

2、 抓取淘宝页面详情链接和价格作为图片名称

3、 把每个图片保存到本地

二、爬取页面思路分析

思路

2.1 URL的格式

在这里我们用到的URL是https://s.taobao.com/searchq=%E4%B9%A6%E7%AD%BE&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20180601&ie=utf8,问号前面是基地址,后面的参数q是检索关键词,page是代表第几页,可以切换页数。

我们需要抓取本页面价格和详情页面的信息。

2.2 对抓取页面的思路分析:

分析网页:获取每页网址并简化

第一页:

https://s.taobao.com/search?q=%E4%B9%A6%E7%AD%BE&imgfile=&js=1&stats_click=

search_radio_all%3A1&initiative_id=staobaoz_20180601&ie=utf8

第二页:

https://s.taobao.com/searchq=%E4%B9%A6%E7%AD%BE&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20180601&ie=utf8&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=44

第三页:

https://s.taobao.com/searchq=%E4%B9%A6%E7%AD%BE&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20180601&ie=utf8&bcoffset=0&ntoffset=6&p4ppushleft=1%2C48&s=88

结论:

得出网页页码是通过s=44*page(页数)可能是由每页有44个产品计算的

然后我们可以发现地址中有很多参数没有变化,我们可以简化网址最终简化为:

https://s.taobao.com/search?q=书签=88

2.3用正则获取每个图片的链接:

2.3.1正则小贴士:

2.3.2右击网页源代码寻找图片链接位置

2.3.3正则获取图片链接

pat='"pic_url":"//(.*?)"'

imglist=re.compile(pat).findall(data)

三、详细代码:

结果展示

>

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180602G18PAN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动