文章目录
- ⛳️ 实战场景
- ⛳️ 站点 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 例教程,点击订购 ⭐️