文章目录

    • ⛳️ 实战场景
    • ⛳️ 站点 1 实战编码
    • ⛳️ 站点 2 实战编码

⛳️ 实战场景

在编写网站账号系统时,有时需要替新注册用户随机生成一个头像,有的站点使用色块拼接,有的网站使用随机汉字,今天我们使用一些随机头像站点,实现该功能。

首先给大家罗列两个随机头像站点:

  • https://joeschmoe.io/api/v1/random:动漫头像;
  • https://thispersondoesnotexist.com/:真人头像。

尤其时第二个,站点名称就叫做【不存在的人】,所以不用担心侵权问题。

使用的模块是 requests,即通过爬虫原理采集一张图片,通过随机命名的方式,保存到本地。

⛳️ 站点 1 实战编码

首先演示的案例是 joeschmoe.io/api/v1/random,示例代码如下所示:

import requestsimport timedef get_img():    res = requests.get('https://joeschmoe.io/api/v1/random')    filename = int(time.time())    with open(f'./{filename}.svg', 'w') as f:        f.write(res.text)if __name__ == '__main__':    get_img()

该站点默认提供的图片是 svg 格式,需要将其进行转换,变为 png 或者 jpg 格式,补充如下代码:

import requestsimport timeimport cairosvgdef get_img():    res = requests.get('https://joeschmoe.io/api/v1/random')    filename = int(time.time())    with open(f'./{filename}.svg', 'w') as f:        f.write(res.text)    return f'./{filename}.svg', filenameif __name__ == '__main__':    svg_path, filename = get_img()    print(svg_path, filename)    cairosvg.svg2png(url=svg_path, write_to=f'./{filename}.png')

上述代码如果需要正确运行,提前安装 cairosvg 模块。

pip install cairosvg

如果安装之后运行代码,依旧出现如下错误:

OSError: no library called "cairo-2" was found


上述错误,需要安装 GTK+ for Windows Runtime Environment Installer,下载地址为:https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer,安装完毕还需要重启你的开发工具,使得环境变量生效。


生成的默认图片有点小,可以使用 scale 放大图片。

cairosvg.svg2png(url=svg_path, write_to=f'./{filename}.png',scale=10)

⛳️ 站点 2 实战编码

第二个站点的实现与上述逻辑完全一致,示例代码如下所示:

import requestsimport timedef get_img():    res = requests.get('https://thispersondoesnotexist.com/image')    filename = int(time.time())    file = open(f'./{filename}.png', 'wb')    file.write(res.content)    file.close()if __name__ == '__main__':    get_img()

实测中站点访问速度有点慢,大家可以多等待一下。

对于 thispersondoesnotexist 站点,有意思的是有人还实现了一个第三方模块,感兴趣的可以去研究一下!

你正在阅读 【梦想橡皮擦】 的博客
阅读完毕,可以点点小手赞一下
发现错误,直接评论区中指正吧
橡皮擦的第 728 篇原创博客

从订购之日起,案例 5 年内保证更新

  • ⭐️ Python 爬虫 120,点击订购 ⭐️
  • ⭐️ 爬虫 100 例教程,点击订购 ⭐️