生活中,我们时常会遇到批量下载图片的情况,不想一个个手动保存图片?让我们以淘宝图片为例,用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)
三、详细代码:
结果展示
>
领取专属 10元无门槛券
私享最新 技术干货