作者 | pk哥


前言

生活或者工作中,不管是写文章、公司 UI 交互图还是广告图等等都需要用到图片,图片的优点和重要性自不用说。

图片我们可不能随便从网上搜索来用,我们得注意图片的版权。我一般是在无版权的网站上找图片,比如我常用的 pixabay 网站,打开网站,搜索我们需要的主题图片,结果,加载大半天,还是下面这样的。。。

python把文件转化为二进制流 python二进制文件转化为图片_下载图片

这大大的影响我们的效率和心情啊,因为这网站的服务器是国外的,所有才会这么慢。

python把文件转化为二进制流 python二进制文件转化为图片_Python_02

作为一个追求工作和生活高效率的 Pythoner,这个实在忍不了。

于是我用决定用 Python 写一个简单的爬虫,把不同主题的图片分别保存在本地,下次需要用图的时候直接在本地浏览选择就行了。

页面元素分析

浏览器中 F12 调试,我们看看单个图片的 url 链接?,大部分的图片 url 都在 「data-lazy-srcset」 属性里。

python把文件转化为二进制流 python二进制文件转化为图片_Python_03

正则提取元素

我们用正则表达式提取出一个页面所有的图片 url,比如我提取第 2 页所有的图片 url,并把这些 url 放在列表里,方便接下来调用后下载图片。

python把文件转化为二进制流 python二进制文件转化为图片_python图片二进制流转换成图片_04

创建目录

我们给不同的主题图片主动新建文件夹保存,包括「素材图片」文件夹前面的路径大家换成自己路径,我用的 Mac 电脑路径和 windows 系统路径不同,大家根据情况替换。后面的 direcory 参数是我们输入的查询图片的关键字,根据我们输入的关键字来创建主题文件夹储存下载的图片。

python把文件转化为二进制流 python二进制文件转化为图片_python把文件转化为二进制流_05

下载图片

我们把提取出来的图片下载下来,open 后面的 wb+ 表示以二进制读写模式打开。

python把文件转化为二进制流 python二进制文件转化为图片_Python_06

最后,pk 哥用 input 方法让大家自行输入查询的英文关键字,「pagi」后的参数是页面,我用 for 循环让它爬取前 5 页。

python把文件转化为二进制流 python二进制文件转化为图片_下载图片_07

运行代码,pk 哥输入英文关键字后回车,效果如下。

python把文件转化为二进制流 python二进制文件转化为图片_下载图片_08

效果展示

把自己常用的主题图都下载在本地,以后找图再也不用等了,爽歪歪。

python把文件转化为二进制流 python二进制文件转化为图片_Python_09