查看原文
其他

用Python爬取高颜值美女(爬虫+人脸检测+颜值检测)

点击上方 "Python人工智能技术关注,星标或者置顶
22点24分准时推送,第一时间送达
后台回复“大礼包”,送你特别福利

编辑:乐乐 | 来自:Python编程学习圈

Pythn人工智能技术(ID:coder_experience)第711期推文

上一篇:Python实现图像的全景拼接


正文


大家好,我是Python人工智能技术

1. 数据源

知乎话题『美女』下所有问题中回答所出现的图片

2. 抓取工具

Python 3,并使用第三方库 Requests、lxml、AipFace,代码共 100 + 行

3. 必要环境

  • Mac / Linux / Windows (Linux 没测过,理论上可以。Windows 之前较多反应出现异常,后查是 windows 对本地文件名中的字符做了限制,已使用正则过滤)

  • 无需登录知乎(即无需提供知乎帐号密码)

  • 人脸检测服务需要一个百度云帐号(即百度网盘 / 贴吧帐号)

4. 人脸检测库

AipFace,由百度云 AI 开放平台提供,是一个可以进行人脸检测的 Python SDK。可以直接通过 HTTP 访问,免费使用。

5. 检测过滤条件

  • 过滤所有未出现人脸图片(比如风景图、未露脸身材照等)

  • 过滤所有非女性(在抓取中,发现知乎男性图片基本是明星,故不考虑;存在 AipFace 性别识别不准的情况)

  • 过滤所有非真实人物,比如动漫人物 (AipFace Human 置信度小于 0.6)

  • 过滤所有颜值评分较低图片(AipFace beauty 属性小于 45,为了节省存储空间;再次声明,AipFace 评分无任何客观性)

6. 实现逻辑

  • 通过 Requests 发起 HTTP 请求,获取『美女』下的部分讨论列表

  • 通过 lxml 解析抓取到的每个讨论中 HTML,获取其中所有的 img 标签相应的 src 属性

  • 通过 Requests 发起 HTTP 请求,下载 src 属性指向图片(不考虑动图)

  • 通过 AipFace 请求对图片进行人脸检测

  • 判断是否检测到人脸,并使用 『4 检测过滤条件』过滤

  • 另外搜索公众号程序员小乐后台回复“面试题”,获取一份惊喜礼包。

  • 将过滤后的图片持久化到本地文件系统,文件名为 颜值 + 作者 + 问题名 + 序号

  • 返回第一步,继续

7. 抓取结果

直接存放在文件夹中(angelababy 实力出境)。另外说句,目前抓下来的图片,除 baby 外,88 分是最高分。个人对其中的排序表示反对,老婆竟然不是最高分

代码:

9. 运行准备

  • 安装 Python 3,Download Python

  • 安装 requests、lxml、baidu-aip 库,都可以通过 pip 安装,一行命令

  • 申请百度云检测服务,免费。人脸识别-百度AI


你还有什么想要补充的吗?

免责声明:本文内容来源于网络,文章版权归原作者所有,意在传播相关技术知识&行业趋势,供大家学习交流,若涉及作品版权问题,请联系删除或授权事宜。


技术君个人微信


添加技术君个人微信即送一份惊喜大礼包


→ 技术资料共享

→ 技术交流社群



--END--


往日热文:

看看人家那物业管理系统,那叫一个优雅(附源码)

一款神仙接私活儿软件,吊到不行!

保姆级别!带你搭建一台服务器!

Python pickle模块:实现Python对象的持久化存储

Python 中有 3 个不可思议的返回功能

Python 强大的信号库 blinker 入门教程

17个常见的Python运行时错误,你中招了没?

警告!VPN翻墙被抓了!已大规模行政处罚!


Python程序员深度学习的“四大名著”:



这四本书着实很不错!我们都知道现在机器学习、深度学习的资料太多了,面对海量资源,往往陷入到“无从下手”的困惑出境。而且并非所有的书籍都是优质资源,浪费大量的时间是得不偿失的。给大家推荐这几本好书并做简单介绍。


获得方式:

1.扫码关注本公众号
2.后台回复关键词:名著

▲长按扫描关注,回复名著即可获取

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存