码农知识堂 - 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 例教程,点击订购 ⭐️
  • 相关阅读:
    【计算机网络仿真实验-实验2.6】带交换机的RIP路由协议
    blender中的灯光和相机
    Mybatis&MybatisPlus 操作 jsonb 格式数据
    Ansible定义各类变量,引用变量方式介绍及注册变量和vars_prompt的用法示例
    linux笔记8--安装软件
    Leetcode139. 单词拆分
    Linux实战——网络连接模式的三种模式
    如何用Excel做最小二乘法②
    Spring MVC中@Controller和@RequestMapping注解详解
    ES6--》一文搞懂JS中的Promise
  • 原文地址:https://blog.csdn.net/hihell/article/details/127166374
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号