【Python爬虫】批量爬取图片的简单案例

@TOC


1.原理

网页中的图片有自己的URL,访问这些URL可以直接得到图片,譬如,访问下面这个URL,你就能得到一张图片:

https://img-blog.csdnimg.cn/a3bad4725ba94301b7cba7dd8209fea4.png#pic_center

所以,批量爬取图片的过程,就是批量获取URL的过程

2.寻找批量的图片URL的储存地址

  • 各个网站批量获得图片URL的方式略有不同,此处先以必应举例。

2.1 百度

  • 打开百度进行图片搜索,并按下F12打开开发者模式

  • 在更多工具中打开“网络”

  • 找到这类请求

  • 相应的描述如图

  • 事实上,百度图片的URL信息都储存在这类请求中。这类请求的完整URL如下:

  • 其中的pn参数,决定了展示的图片个数,且是30的倍数

  • queryWord参数和word参数,是搜索的关键词

  • 访问这个URL,会得到如下杂乱的信息

  • 只要把这些信息进行恰到的处理,就可以从中提取出所有图片的URL

2.2 搜狗

  • 搜狗与百度存储图片URL的请求头名字不同,如下:

2.3 必应

必应存储图片URL的请求头如下:

2.4 总结

  • 只要找到了网站批量存储图片URL的请求头,就可以通过访问这个请求头,获得其中的文本数据。接下来,我将以必应为例,讲解如何从杂乱的信息中,批量提取图片URL。

3.处理存储图片URL的请求头

  • 上文中我们提及,这类请求头中的信息非常的杂乱。但是,我们可以用正则化筛选出图片的URL,如图:

  • 可以看到,通过这个正则表达式,所有图片的URL都被提取出来

4.完整demo

有了批量的图片URL,下载已经易如反掌。使用urlretrieve函数可以直接将远程数据下载到本地。详情请看接下来的完整demo:

最后更新于

这有帮助吗?