码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【不存在的人】用Python获取生成随机头像,还不侵权


    文章目录

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

    ⛳️ 实战场景

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

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

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

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

    【不存在的人】用Python获取生成随机头像,还不侵权

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

    ⛳️ 站点 1 实战编码

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

    import requests
    import time
    
    
    def 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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

    import requests
    import time
    import cairosvg
    
    
    def 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', filename
    
    
    if __name__ == '__main__':
        svg_path, filename = get_img()
        print(svg_path, filename)
        cairosvg.svg2png(url=svg_path, write_to=f'./{filename}.png')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

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

    pip install cairosvg
    
    • 1

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

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

    【不存在的人】用Python获取生成随机头像,还不侵权
    上述错误,需要安装 GTK+ for Windows Runtime Environment Installer,下载地址为:https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer,安装完毕还需要重启你的开发工具,使得环境变量生效。

    【不存在的人】用Python获取生成随机头像,还不侵权
    生成的默认图片有点小,可以使用 scale 放大图片。

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

    ⛳️ 站点 2 实战编码

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

    import requests
    import time
    
    
    def 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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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

    对于 thispersondoesnotexist 站点,有意思的是有人还实现了一个第三方模块,感兴趣的可以去研究一下!
    【不存在的人】用Python获取生成随机头像,还不侵权

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

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

    • ⭐️ Python 爬虫 120,点击订购 ⭐️
    • ⭐️ 爬虫 100 例教程,点击订购 ⭐️
  • 相关阅读:
    紫杉醇的PEG-壳聚糖聚合物胶束|壳寡糖硬脂酸聚合物(CSO-SA)|DOX-CSO-SA阿霉素-壳寡糖-硬脂酸|试剂
    C++内存池
    Git存在冲突与解决方式
    ECMAScript 2022 正式发布,有你了解过的吗?
    centos8 提示Algorithm negotiation failed
    【imessage苹果群发苹果推】软件安装Apple证书,服务或其他方式建立任何涵盖的产品或其他代码或程序
    docker和docker compose 部署
    「优选算法刷题」:验证栈序列
    ChatGPT + DALL·E 3
    MongoDB系列之Window环境部署配置
  • 原文地址:https://blog.csdn.net/hihell/article/details/127166374
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号