教你用Python批量下载静态页面图片( 二 )


还是Python的requests库,它可以很方便的套上一个代理IP(部分网站反爬虫机制是封IP,被封了就伪装一个好了 。):

  •  
  •  
request=requests.Session()request.proxies= ....
效率:
爬虫的效率问题基本不在解析信息的速度上,网络IO的时间其实才是大头 。比如你请求网页花了500ms,相应的你的解析速度是1ms还是10ms已经不重要了 。
其他还有很多地方就不一一总结了,简而言之,写爬虫来讲,Python相对于其它语言的优势在于有足够简洁的语法和足够多的库支持,开发效率很高,而且运行效率方面,网络IO的时间已经大大冲淡了Python的效率问题 。
用Python可以1个人做5个人的事情,只是多用10倍的机器,多么划算 。
 爬取网站图片前的准备工作1. 安装Python官方下载:
https://www.python.org/downloads/
教你用Python批量下载静态页面图片

文章插图
勾选“Add Python 3.6 to PATH”,直接下一步,安装完成 。
教你用Python批量下载静态页面图片

文章插图
打开“命令提示符”,敲下“python”,启动成功 。
教你用Python批量下载静态页面图片

文章插图
2. 安装第三方库
既然称为第三方库了,那就是本来不是Python已有的,因此需要我们自行安装库:
  • requests(第三方库需下载,中文说明文档:http://docs.python-requests.org/zh_CN/latest)
  • BeautifulSoup4(第三方库需下载,中文说明文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/)
  • re
  • urllib.request
  • os
安装代码:安装第三方库,在系统直接调用PIP程序安装即可 。
  •  
pip install beautifulsoup4
pip install requests
教你用Python批量下载静态页面图片

文章插图
至此,我们的环境就准备好了,多么简单 。
 3. 爬虫思路爬虫主要的核心在于以下三点:
  • 解析网页结构(基础篇)
  • 获取目标数据途径(基础篇)
  • 整合优化代码(实战篇)
代码整合过程部分的内容将会移到《【简单易学】教你用Python批量下载静态页面图片(实战篇)》详细讲解,敬请关注!
解析网页结构首先确认我们的目标爬取网站:https://www.socwall.com/
其次就是找到高清图片保存在什么页面里,获取到高清图片的存放地址 。
最后使用代码去批量下载这些高清图片 。
教你用Python批量下载静态页面图片

文章插图
这一部分我们重点讲讲如何一步一步地分析网页,最终达到找到这些高清图片的存放地址 。
先看看首页是什么样的~ 顺便以超市买东西为例子来分析一下,我们到底怎么找到目标商品的存放地址 。
教你用Python批量下载静态页面图片

文章插图
3.1 通过观察整个页面的结构,分析网页组成成分 。
教你用Python批量下载静态页面图片

文章插图
(上方红框是列表页,下方红框是列表页的页码)
整个页面像个货架一样展示商品,下面的页码就像是楼层号码,而货架上摆放的只是质量较差的(被压缩过的)展示商品(缩略图),因此我们要拿到货真价实的商品(目标图片)就需要到它所在的楼层,找到它摆放在货架上的地方 。
 
3.2 上方列表页放置的是图片的缩略图,点击缩略图进入该缩略图的专属页面 。
教你用Python批量下载静态页面图片

文章插图
来到目标商品的货架前,我们发现有专属的取货窗口( 右侧的Download按钮) 。
 
3.3 进入内层页面,找到了获取这张图片最终高清原图地址 。
教你用Python批量下载静态页面图片

文章插图
点击右侧Download按钮 。
教你用Python批量下载静态页面图片

文章插图
我们终于找到了货真价实的商品(目标图片),再次只需要另存为图片即可保存到本地!
OK!
获取目标数据途径
总结上述获取高清原图的过程,总结获取原图的途径:
  • 选择目标页面(页码)
  • 选择目标货架(列表页)
  • 选择目标图片(缩略图)
  • 选择原图下载(高清原图)
一共四个步骤,我们的目的就算完成了,就下来的任务是使用代码来重复这个过程 。


推荐阅读