一见钟情钟的不是情,是脸
日久生情生的不是脸,是情

项目简介

本项目利用Python爬虫和百度人脸识别API,针对简书交友专栏,爬取用户照片(侵删),并进行打分。
本项目包括以下内容:

  • 图片爬虫
  • 人脸识别API使用
  • 颜值打分并进行文件归类

图片爬虫

现在各大交友网站都会有一些用户会爆照,本文爬取简书交友专栏(https://www.jianshu.com/c/bd38bd199ec6)的所有帖子,并进入详细页,获取所有图片并下载到本地。

代码
import requests
from lxml import etree
import timeheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
}def get_url(url):res = requests.get(url,headers=headers)html = etree.HTML(res.text)infos = html.xpath('//ul[@class="note-list"]/li')for info in infos:root = 'https://www.jianshu.com'url_path = root + info.xpath('div/a/@href')[0]# print(url_path)get_img(url_path)time.sleep(3)def get_img(url):res = requests.get(url, headers=headers)html = etree.HTML(res.text)title = html.xpath('//div[@class="article"]/h1/text()')[0].strip('|').split(',')[0]name = html.xpath('//div[@class="author"]/div/span/a/text()')[0].strip('|')infos = html.xpath('//div[@class = "image-package"]')i = 1for info in infos:try:img_url = info.xpath('div[1]/div[2]/img/@data-original-src')[0]print(img_url)data = requests.get('http:' + img_url,headers=headers)try:fp = open('row_img/' + title + '+' + name + '+' + str(i) + '.jpg','wb')fp.write(data.content)fp.close()except OSError:fp = open('row_img/' + name + '+' + str(i) + '.jpg', 'wb')fp.write(data.content)fp.close()except IndexError:passi = i + 1if __name__ == '__main__':urls = ['https://www.jianshu.com/c/bd38bd199ec6?order_by=added_at&page={}'.format(str(i)) for i in range(1,201)]for url in urls:get_url(url)

人脸识别API使用

由于爬取了帖子下面的所有图片,里面有各种图片(不包括人脸),而且是为了找到高颜值小姐姐,如果人工筛选费事费力,这里调用百度的人脸识别API,进行图片过滤和颜值打分。

人脸识别应用申请
  • 首先,进入百度人脸识别官网(http://ai.baidu.com/tech/face),点击立即使用,登陆百度账号(没有就注册一个)。
  • 创建应用,完成后,点击管理应用,就能看到AppID等,这些在调用API时需要使用的。
API调用

这里使用杨超越的图片先试下水。通过结果,可以看到75分,还算比较高了(自己用了一些网红和明星测试了下,分数平均在80左右,最高也没有90以上的)。

from aip import AipFace
import base64APP_ID = ''
API_KEY = ''
SECRET_KEY = ''aipFace = AipFace(APP_ID, API_KEY, SECRET_KEY)filePath = r'C:\Users\LP\Desktop\6.jpg'
def get_file_content(filePath):with open(filePath, 'rb') as fp:content = base64.b64encode(fp.read())return content.decode('utf-8')imageType = "BASE64"options = {}
options["face_field"] = "age,gender,beauty"result = aipFace.detect(get_file_content(filePath),imageType,options)
print(result)

颜值打分并进行文件归类

最后结合图片数据和颜值打分,设计代码,过滤掉非人物以及男性图片,获取小姐姐图片的分数(这里处理为1-10分),并分别存在不同的文件夹中。

from aip import AipFace
import base64
import os
import timeAPP_ID = ''
API_KEY = ''
SECRET_KEY = ''aipFace = AipFace(APP_ID, API_KEY, SECRET_KEY)def get_file_content(filePath):with open(filePath, 'rb') as fp:content = base64.b64encode(fp.read())return content.decode('utf-8')imageType = "BASE64"options = {}
options["face_field"] = "age,gender,beauty"file_path = 'row_img'
file_lists = os.listdir(file_path)
for file_list in file_lists:result = aipFace.detect(get_file_content(os.path.join(file_path,file_list)),imageType,options)error_code = result['error_code']if error_code == 222202:continuetry:sex_type = result['result']['face_list'][-1]['gender']['type']if sex_type == 'male':continue#     print(result)beauty = result['result']['face_list'][-1]['beauty']new_beauty = round(beauty/10,1)print(file_list,new_beauty)if new_beauty >= 8:os.rename(os.path.join(file_path,file_list),os.path.join('8分',str(new_beauty) +  '+' + file_list))elif new_beauty >= 7:os.rename(os.path.join(file_path,file_list),os.path.join('7分',str(new_beauty) +  '+' + file_list))elif new_beauty >= 6:os.rename(os.path.join(file_path,file_list),os.path.join('6分',str(new_beauty) +  '+' + file_list))elif new_beauty >= 5:os.rename(os.path.join(file_path,file_list),os.path.join('5分',str(new_beauty) +  '+' + file_list))else:os.rename(os.path.join(file_path,file_list),os.path.join('其他分',str(new_beauty) +  '+' + file_list))time.sleep(1)except KeyError:passexcept TypeError:pass

最后结果8分以上的小姐姐很少,如图(侵删)。

讨论

  • 简书交友小姐姐数量较少,读者可以去试试微博网红或知乎美女。
  • 虽然这是一个看脸的时代,但喜欢一个人,始于颜值,陷于才华,忠于人品(最后正能量一波,免得被封)。

Python爬虫+颜值打分,5000+图片找到你的Mrs. Right相关推荐

  1. 5000+图片找到你喜欢的那个TA,Python爬虫+颜值打分

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 罗罗攀 PS:如有需要Python学习资料的小伙伴可以加点击下方链接 ...

  2. python爬虫下载王者荣耀图片

    python爬虫下载王者荣耀图片 腾讯课堂白嫖的一堂课,大佬勿喷. import requests import jsondata = requests.get('http://pvp.qq.com/ ...

  3. 当你学会了Python爬虫,网上的图片免费下

    当你学会了Python爬虫,网上的图片免费下 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 加入作者的python学习圈 ...

  4. python爬虫,爬取下载图片

    python爬虫,爬取下载图片 分别引入以下三个包 from urllib.request import urlopen from bs4 import BeautifulSoup import re ...

  5. mac用python爬虫下载图片_使用Python爬虫实现自动下载图片

    python爬虫支持模块多.代码简洁.开发效率高 ,是我们进行网络爬虫可以选取的好工具.对于一个个的爬取下载,势必会消耗我们大量的时间,使用Python爬虫就可以解决这个问题,即可以实现自动下载.本文 ...

  6. Python爬虫颜值检测图片抓取?有了这个还怕乔碧萝吗??

    推荐一下我建的python学习交流扣扣qun:850973621,群里有免费的视频教程,开发工具.电子书籍.项目源码分享.学习python web.python爬虫.数据分析.大数据,人工智能等技术有 ...

  7. Python爬虫 搜索并下载图片

    本文是我学习Python爬虫的笔记,一直想要再学一门语言来扩展自己的知识面,看了看各种语言主要使用的方向,最后决心还是来搞一搞Python.Python给我的第一印象就是语法简洁,格式另类还有各种库的 ...

  8. python爬虫网页中的图片_Python爬虫爬取一个网页上的图片地址实例代码

    本文实例主要是实现爬取一个网页上的图片地址,具体如下. 读取一个网页的源代码: import urllib.request def getHtml(url): html=urllib.request. ...

  9. Python爬虫之自动下载图片

    对大佬的图片下载器的小程序很感兴趣,故运行了一下代码块,发现会报类似下图中的Exceeded 30 redirects错. 故重新编写了一个访问函数来实现图片下载功能,不过还是要感谢大佬很有趣的ide ...

  10. python爬虫,g-mark网站图片数据爬取及补坑

    应用python对g-mark网站图片数据爬取,同时但对于数据抓取失败的图片进行补坑(重新爬取操作),由于是日本网站,没有梯子访问的话,特别容易访问超时,比较合适的补坑操作是直接将数据采集到数据库,而 ...

最新文章

  1. PHP使用BC Math 函数处理浮点运算问题
  2. WordPress 网站开发“微信小程序“实战(二)
  3. tasklist 妙用
  4. 【Python】spyder编译器调试时添点断点的方法
  5. C++逐行读取文本文件的正确做法
  6. Java项目经验——程序员成长的关键
  7. 【Python】Python基础
  8. [转]浅析Tomcat、JBOSS、WebSphere、WebLogic、Apache
  9. 论坛高级签名_首届中国定制白酒高峰论坛在天津盘山举行
  10. 8万级自动挡智能SUV,舒适好开是亮点,众泰T600Coupe要逆天?
  11. [MySQL Bug]DDL操作导致备库复制中断
  12. StringBuilder 详解 (String系列之2)
  13. [转] 拆开表皮看心脏:主流网游引擎面面观
  14. Thinkphp精仿韩都衣舍商城网站源码
  15. Excel:筛选后序号自动排序。
  16. EditPlus下载安装和汉化
  17. 基于Python实现的合同管理系统设计
  18. Latex表格标题左对齐,并且table加粗
  19. HTML+CSS+VUE 简易的便签
  20. Linux系统如何优化

热门文章

  1. java集合(超详细)
  2. 云计算机短网址,最新官方新浪短网址生成API接口与在线短网址缩短工具分享
  3. 随机迷宫生成算法整理分析
  4. 大白菜U盘重装Win10系统教程
  5. 热电冷磁之牛顿的三棱镜谭:围棋之C++
  6. 【论文阅读】Multi-Modal Sarcasm Detection Based on Contrastive Attention Mechanism
  7. 火影忍者新忍出击服务器正在维修,火影忍者手游更新公告 新忍出击资源翻倍...
  8. 探索分布式服务框架Dubbo开篇:牛逼哄哄的RPC
  9. python turtle画彩虹的代码_Python turtle画图库画姓名实例
  10. Keras 处理 不平衡的数据的分类问题 imbalance data 或者 highly skewed data