设为首页 收藏本站
查看: 2137|回复: 0

[经验分享] python实现明星专家系统

[复制链接]

尚未签到

发表于 2018-8-13 13:17:36 | 显示全部楼层 |阅读模式
# encoding:utf-8`  
import base64
  
import urllib
  
import urllib2
  
import simplejson as json
  
from  os import listdir
  
import MySQLdb
  
import sys
  
reload(sys)
  
sys.setdefaultencoding('utf-8')
  
import requests
  
from bs4 import BeautifulSoup
  
import re
  

  

  
def conmysql():
  
    conn= MySQLdb.connect(
  
        host='localhost',
  
        port = 3306,
  
        user='root',
  
        passwd='123456',
  
        db ='xxnlove',
  
    charset='utf8'
  
        )
  
    #cur = conn.cursor()
  
    return conn
  

  

  
def crawling(name):
  
    url="http://baike.baidu.com/search/word?word='%s'" % name
  
    response = requests.get(url)
  
    response.encoding = 'utf-8'
  
    text = response.text
  
    soup = BeautifulSoup(text, 'lxml')
  
    for infor in soup.find_all('meta')[3:4]:
  
        global information
  
        information=(infor.get('content'))
  
    return information
  

  
def facecrawling(name):
  
    url="http://baike.baidu.com/search/word?word='%s'"  % name
  
    response = requests.get(url)
  
    response.encoding = 'utf-8'
  
    text = response.text
  
    soup = BeautifulSoup(text, 'lxml')
  
    imgurl = soup.img.get('src')
  
    try:
  
        response = requests.get('%s' % imgurl)
  
        open('./star/'+name+'.jpg', 'wb').write(response.content)
  
    except:
  
        print "继续"
  

  
'''
  
人脸比对接口
  
'''
  

  
def facecompar(image01,image02):
  
    matchUrl = "https://aip.baidubce.com/rest/2.0/face/v2/match"
  
    # 二进制方式打开图文件
  
    f = open(image01, 'rb')
  
    # 参数images:图像base64编码
  
    img1 = base64.b64encode(f.read())
  
    # 二进制方式打开图文件
  
    f = open(image02, 'rb')
  
    # 参数images:图像base64编码
  
    img2 = base64.b64encode(f.read())
  
    # 参数images:图像base64编码,多张图片半角逗号分隔
  
    params = {
  
        "images": img1 + ',' + img2}
  
    params = urllib.urlencode(params)
  
    access_token = '24.1fba688d5a060b87a0dfcab7731.2592000.1505832798.282335-100360'
  
    matchUrl = matchUrl + "?access_token=" + access_token
  
    request = urllib2.Request(url=matchUrl, data=params)
  
    request.add_header('Content-Type', 'application/x-www-form-urlencoded')
  
    response = urllib2.urlopen(request)
  
    content = response.read()
  
    if content:
  
        content = json.loads(content)
  
        try:
  
            similar=content['result'][0]['score']
  
            return similar
  
        except:
  
            print image02+"照片比对有问题"
  
        #if similar >80:
  
            #print "两张图片的相似度为"+str(similar)+"   很有可以能是同一个人"
  
        #    return similar
  
        #else:
  
        #    #print "两张图片的相似度为:"+str(content['result'][0]['score'])
  
        #    return similar
  
def compare():
  
    similarlist=[]
  
    similardict={}
  
    for img in listdir('./star/'):
  
        similarvalue=facecompar('compar.jpg','./star/'+img)
  
        similarlist.append(similarvalue)
  
        similardict[similarvalue]=img
  
    return similarlist,similardict
  

  
def stardb():
  
    starstr="邢佳栋 李学庆 高昊 潘粤明 戴军 薛之谦 贾宏声 于波 李连杰 王斑 蓝雨 刘恩佑 任泉 李光洁 姜文 黑龙 张殿菲 邓超 张杰 杨坤 沙溢 李茂 黄磊 于小伟 刘冠翔 秦俊杰 张琳 陈坤 黄觉 邵峰 陈旭 马天宇 杨子 邓安奇 赵鸿飞 马可 黄海波 黄志忠 李晨 后弦 王挺 何炅 朱亚文 胡军 许亚军 张涵予 贾乃亮 陆虎 印小天 于和伟 田亮 夏雨 李亚鹏 胡兵 王睿 保剑锋 于震 苏醒 胡夏 张丰毅 刘翔 李玉刚 林依轮 袁弘 朱雨辰 丁志诚 黄征 张子健 许嵩 向鼎 陆毅 乔振宇 闫肃 李健 王啸坤 胡歌 吉杰 吴俊余 韩寒 黄海冰 魏晨 郭敬明 何晟铭 巫迪文 谢苗 郑源 欢子 文章 陈翔 井柏然 左小祖咒 含笑 李咏 徐誉滕 段奕宏 李炜 罗中旭 张远 李立 释小龙 大左 君君 毛宁 樊凡 周一围 于荣光 汤潮 张晓晨 吴京 山野 陈龙 侯勇 张国强 玉米提 周觅 张丹峰 俞思远 姚明 冯绍峰 陈玉建 吴建飞 郑钧 胡彦斌 李智楠 钱枫 高曙光 谢和弦 陈道明 柳云龙 汪峰 陈楚生 陈思成 魏晨 马雪阳 袁成杰 崔健 杜淳 林申 刘洲成 黄晓明 刘烨 张翰 杨洋 宋晓波 解小东 窦唯 姜武 陈泽宇 彭坦 张一山 李易峰 严宽 东来东往 张国立 王志文 佟大为 柏栩栩 蒲巴甲 凌潇肃 李行亮 毛方圆 张嘉译 大张伟 师洋 李幼斌 张磊 朱梓骁 武艺 杨俊毅 耿乐 钱泳辰 撒贝宁 徐峥 谭杰希 黄晟晟 海鸣威 汪涵 王学兵 贾一平 孙红雷 袁文康 蔡国庆 吴秀波 王栎鑫 安琥 刘心 俞灏明 张超 于小彤 张峻宁 乔任梁 朴树 赵帆 张译 聂远 张敬轩 付辛博 黄明 杜海涛 李宇春 张靓颖 周笔畅 何洁 刘亦菲 张含韵 陈好 尚雯婕 汤唯 张筱雨 韩雪 孙菲菲 张嘉倪 霍思燕 陈紫函 朱雅琼 江一燕 厉娜 许飞 胡灵 郝菲尔 刘力扬 reborn 章子怡 谭维维 魏佳庆 张亚飞 李旭丹 孙艺心 巩贺 艾梦萌 闰妮 王蓉 汤加丽 汤芳 牛萌萌 范冰冰 赵薇 周迅 金莎 纪敏佳 黄雅莉 叶一茜 马苏 阿桑 董卿 金铭 徐行 姚笛 朱妍 夏颖 陈西贝 冯家妹 高娅媛 林爽 郑靖文 陶虹 徐静蕾 黄奕 董洁 巩俐 高圆圆 于娜 孟广美 Gameapple  美女奉奉 小龙女彤彤 张子萱  果子 丁贝莉 吸血芭比 公交MM 香香 段思思 二月丫头 刘羽琦 dodolook 拉拉公主 沈丽君 周璟馨 丁叮 谢雅雯 陈嘉琪 宋琳 郭慧敏 卢洁云 佘曼妮 黄景 马艳丽 蒋雯丽 宁静 许晴 张静初 瞿颖 张延 孙俪 闵春晓 蔡飞雨 吴卓羲 游鸿明 胡宇崴 张震岳 汤镇业 黄立行 苗侨伟 周星驰 温升豪 萧敬腾 窦智孔 陈汉典 郑伊健 陈国坤 张信哲 范逸臣 王绍伟 辰亦儒 张卫健 周汤豪 成龙 林志颖 苏有朋 温兆伦 吴建豪 黄家驹 卢广仲 林文龙 赵又廷 刘德华 周传雄 李治廷 周华健 钟镇涛 周渝民 陈柏霖 邱心志 陈百强 郑元畅 王杰 狄龙 郭富城 光良 黄浩然 彭于晏 马浚伟 蓝正龙 林佑威 杜德伟 费翔 许志安 黄义达 黄耀明 陈键锋 王喜 黄贯中 江华 贺一航 郑少秋 蔡康永 陈伟霆 黄宗泽 刘畊宏 梁家辉 林志炫 赵文卓 樊少皇 连凯 吴镇宇 哈狗帮 吴尊 张国荣 方大同 刘松仁 郑嘉颖 周柏豪 王祖蓝 古巨基 萧正楠 邹兆龙 李铭顺 吴奇隆 金城武 李圣杰 陈建州 余文乐 罗志祥 吴启华 李克勤 秦汉 单立文 汪东城 莫少聪 陈冠希 黄秋生 罗嘉良 欧弟 马国明 范植伟 阮经天 郑中基 张智霖 麦浚龙 蔡依林 张韶涵 王心凌 徐若瑄 林志玲 王菲 S.H.E Twins 徐熙媛 桂纶镁 林依晨 陈乔恩 梁静茹 蔡诗芸 范玮琪 廖碧儿 张柏芝 李嘉欣 容祖儿 李玟 贾静雯 MaggieQ 林心如 朱茵 叶璇 唐宁 曾之乔 安以轩 杨丞琳  侯佩岑 同恩 陈松伶 文颂娴 梁凯蒂 林韦君 陈思璇 曹敏莉 乐基儿 郑雪儿 佘诗曼 郑秀文 萧蔷  温碧霞 刘嘉玲 刘玉玲 林熙蕾 李若彤 张曼玉 关之琳 陈慧琳 萧淑慎 蔡少芬 萧亚轩 田丽 杨采妮 李丽珍 琦琦 天心 任港秀 杨思敏 郭静纯 钟丽缇 孙燕姿 叶玉卿 翁红 邱淑贞 蔡淑臻 梁咏琪 季芹 舒淇 莫文蔚 戴佩妮 刘若英 杨千桦 范伟琪 徐熙娣 陈宝莲 吴辰君 张庭 林嘉欣 俞飞鸿 叶子楣 周海媚 伊能静 蜜雪薇琪  侯湘婷 Hebe 应采儿 许茹芸 吴佩慈 郑希怡 范文芳 李彩桦 蔡淳佳 本多RuRu 范晓萱 张惠妹 林忆莲 关心妍 卓依婷 杨恭如 陈文媛 吴小莉 梅艳芳 林青霞 赵雅芝 孟庭苇 吴倩莲 陈慧珊 许慧欣 黎姿 周慧敏 钟楚红 蔡琴 齐豫 邓丽君 林凤娇 陈玉莲 周冰倩 杨惠姗 金素梅 翁美玲 高胜美 甄妮 胡慧中 邝美云 俞小凡 吕秀菱 萧芳芳 刘雪华 潘迎紫 梁雁翎 汪明荃 苏芮 冯宝宝 利智 张艾嘉 叶倩文 陈淑桦 郑裕玲 潘越云 凤飞飞 喻可欣"
  
    starslist=starstr.split()
  
    for star in starslist:
  
        inform=crawling(star)
  
        facecrawling(star)
  
        try:
  
            conn = conmysql()
  
            cur = conn.cursor()
  
            image=star+'.jpg'
  
            sql="insert into star values(%s,%s,%s)"
  
            cur.execute(sql,(star,inform,image))
  
            cur.close()
  
            conn.commit()
  
            conn.close()
  
        finally:
  
            print "connitue"
  
        import time
  
        time.sleep(1.5)
  

  

  
if __name__=="__main__":
  
    similarlist,similardict=compare()
  
    similarkey=sorted(similarlist)[-1]
  
    starname=similardict[similarkey]
  
    conn = conmysql()
  
    cur = conn.cursor()
  
    sql="select * from face where iamge='%s'" % starname
  
    cur.execute(sql)
  
    results = cur.fetchall()
  
    print "一共对数据库进行比对了"+str(len(similarlist))+"条信息"
  
    for info in results:
  
        print "匹配到明星的信息:"+ info[0],info[1],info[2],"相似度:"+str(similarkey)
  
    conn.close()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-551232-1-1.html 上篇帖子: Python的multiprocessing模块详解 下篇帖子: Python3.5修炼手册5-duyuheng
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表