麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 人口調查的14億人中,你的顏值如何?

人口調查的14億人中,你的顏值如何?

來源:千鋒教育
發布人:qyf
時間: 2022-09-20 17:17:23 1663665443

  現在越來越多的人喜歡化妝、醫美啊,所以長得都一樣。放眼望去大街上到處是美女,而且怎么還長得很像呢?

  我們測測他們的顏值如何吧? 此次我們明星里的美女帥哥為例測試顏值(當然也可以加入你的照片了,只要結果不怕被打擊)

  測評步驟:

  爬取貼吧中的你想測評的明星美女和帥哥們

  使用第三方的人臉識別測評工具

  使用數據分析對其結果進行可視化

  先給大家一個效果圖,帥哥的顏值排名!

Picture(1)

  想知道你的顏值嗎?那我們就開始吧!

  爬蟲部分

  此次我們爬取的是百度貼吧中的明星圖片,以劉詩詩的圖片爬取為例

Picture(2)

  鏈接:https://tieba.baidu.com/p/3263751314#!/l/p1

  分析一下圖片的加載方式,發現是AJAX的異步請求,請求的鏈接是:

Picture(3)

  其中紅線位置的是有變化的部分。pn=1表示第一頁的圖片顯示,除了默認加載的圖片隨著鼠標的滑動在第一頁還可以加載更多的內容,但是需要指定開始和結束位置。而ps=1就表示從第1開始,pe=40就表示到40結束(ps和pe中的s表示start,e表示end)。一頁一共有200條數據,那后面的紅線位置是什么呢?是不斷變化的數值。通過分析我們了解到這個數值是時間戳。于是我們可以這樣拼接我們的請求鏈接。

  import time

  def get_timestamp():

  t = str(time.time())

  return t.replace(".","")[:-3] # 因為最后的時間是13位

  if __name__ == '__main__':

  for page in range(1,2):

  for i in range(page,page+5):

  start = (i-page)*40+1+200*(page-1)

  end = 200*(page-1)+(i-page+1)*40

  ts = get_timestamp()

  url = f'https://tieba.baidu.com/photo/g/bw/picture/list?kw=%E5%88%98%E8%AF%97%E8%AF%97&alt=jview&rn=200&tid=3263751314&pn={page}&ps={start}&pe={end}&info=1&_={ts}'

  print(url)

  OK!這樣我們的鏈接就做好了,注意本次選擇的只有一頁。所以外層循環是range(1,2)。

  因為這個鏈接返回結果是Json數據,所以我們網絡請求要這樣處理

  head = {

  'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36",

  'Referer': 'https://tieba.baidu.com/p/1457326101'} # 必不可少的Referer 認證

  # 通過requests獲取訪問的頁面

  def get_json(url):

  r = requests.get(url, headers=head)

  if r.status_code != 200: # 如果沒有正常獲得網頁,產生異常

  raise Exception()

  return r.json()

  這樣我們就可以獲取所有圖片的json數據啦!但是我們要從數據中把圖片的鏈接解析出來。格式化后的json如下圖:

Picture(4)

  我們現在要從json中把purl對應的鏈接解析出來,代碼如下

  def parse_json(json, name):

  pic_list = json.get('data').get('pic_list')

  for pic in pic_list:

  purl = pic.get('purl')

  # time.sleep(3) # 此處可以考慮使用休眠

  拿到purl之后,我們可以再次請求網絡進行下載

  head1 = {

  'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36",

  'Host': 'imgsrc.baidu.com'

  }

  def get_pic(pic_url, name):

  r = requests.get(pic_url, headers=head1)

  if r.status_code != 200: # 如果沒有正常獲得網頁,產生異常

  raise Exception()

  filename = pic_url.rsplit('/')[-1]

  print(filename)

  with open('girl1/' + name + filename, mode='wb') as sw:

  sw.write(r.content)

  print('下載圖片:' + filename + '成功!')

  這樣圖片就會被保存到指定的位置,注意在保存的時候使用了一個name,主要用于后期我們進行識別時的分類。

  最后在入口調用上面的函數代碼如下:

  def maindown(url, name):

  num = 1

  # 下載html頁面

  json = get_json(url)

  # 從頁面中提取鏈接

  parse_json(json, name)

  if __name__ == '__main__':

  for page in range(1, 5):

  for i in range(page, page + 5):

  start = (i - page) * 40 + 1 + 200 * (page - 1) # 201. 241. 281. 321 361

  end = 200 * (page - 1) + (i - page + 1) * 40 # 240 280 320 360 400 440. 3*40

  ts = get_timestamp()

  url = f'https://tieba.baidu.com/photo/g/bw/picture/list?kw=%E5%88%98%E8%AF%97%E8%AF%97&alt=jview&rn=200&tid=3263751314&pn={page}&ps={start}&pe={end}&info=1&_={ts}'

  # 下載html頁面

  json = get_json(url)

  # 從頁面中提取圖片鏈接并下載到本地

  parse_json(json, name)

  time.sleep(5) # 此處加了休眠的目的是防止被阻止爬取

  下載成功后的圖片展示:

Picture(5)

  顏值測評

  顏值測評我們使用到的是百度的AI人臉檢測,我們并沒有使用自定義的人臉檢測部分。

  所以我們要簡單的了解下如何使用人家做好的現成的東西,當然這個不僅僅可以測顏值,還可以測年齡,性別啊等等。可以參考官方文檔:http://ai.baidu.com/ai-doc/FACE/yk37c1u4t

  要想使用人臉檢測這款產品首先要注冊成為百度賬戶才可以。步驟是:

  成為開發者

  創建應用

Picture(6)

  獲取密鑰,進入應用中獲取密鑰

Picture(7)

  生成簽名,這個要依賴你上面創建應用的AppID、API Key及Secret Key三個值,進行Access Token(用戶身份驗證和授權的憑證)的生成。

  參考鏈接:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu

  官方給出的Python API使用文檔,代碼如下:

  class BaiduPicDetect:

  def __init__(self):

  self.AK = "你的API Key"

  self.SK = "Secret Key"

  self.headers = {

  "Content-Type": "application/json; charset=UTF-8"

  }

  # 通過AK和SK得到access_token值

  def get_access_token(self):

  host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + self.AK + '&client_secret=' + self.SK

  response = requests.get(host, headers=self.headers)

  json_result = json.loads(response.text)

  return json_result['access_token']

  啟動開發,目前AI產品主要有兩種方式使用:API與SDK,您可以選擇各產品的文檔

  篇幅原因,具體使用請參考:http://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjgn3

  百度人臉檢測API目前支持三種圖片數據類型:一種就是BASE64;第二種是URL,也就是在線的圖片源地址;第三種是FACE_TOKEN。

  我們是將圖片下載到了本地,所以我們需要將圖片轉成BASE64

  # 注意下面兩個方法也是BaiduPicDetect類中的方法

  # 要將識別的圖片轉成base64格式

  def img_to_base64(slef, path):

  with open(path, 'rb') as f:

  base64_data = base64.b64encode(f.read())

  return base64_data

  # 開始檢測每一張圖片

  def detect_face(self, img_src):

  ..... # 代碼太多回復給源碼

  return age, beauty, gender

  類我們封裝完畢之后,我們開始遍歷我們下載的圖片進行顏值測評了,并且我們把測評的數據保存到csv文件中。

  def beauty_check(path):

  ...... # 遍歷path文件夾并將測評數據保存到DataFrame中,其中df即DataFrame對象

  return df

  if __name__ == '__main__':

  # 當前py文件與girl文件夾在同級,而圖片都在girl文件夾中(僅是美女的圖片哦!也可以創建boy的文件夾放帥哥)

  path = 'girl'

  result = beauty_check(path)

  result.to_csv('./girl/顏值測評.csv', index=False)

  print('finish!')

  整體結構是這樣的:

Picture(8)

  下載后的csv數據如下(溫馨提示這個也跟圖片有關)哈哈哈年齡好年輕啊!

Picture(9)

  數據分析

  下面就開始我們的數據分析部分啦!代碼很簡單了。

  import pandas as pd

  import matplotlib.pyplot as plt

  import seaborn as sns

  %matplotlib inline

  plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] # 處理中文問題 我是Mac系統

  data= pd.read_csv('./girl.csv',error_bad_lines=False)

  由于我們獲取了多位美女的多張圖片,所以我們要求一下每位美女的顏值平均值,所以我們按照名字進行分組,并求顏值的平均值。

  下面的代碼我們進行了一下排序:

  beauty = data.groupby('name')['beauty'].mean().sort_values(ascending=False)

  對分組求平均值后的數據進行可視化展示

  sns.barplot(x=beauty.index,y=beauty.values,palette=sns.color_palette('husl'))

  結果出來了:

Picture(10)

  由于篇幅問題,有些代碼省略了,有需要的朋友!可以索要源碼哦!

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 青青草97| 国产精品久久福利网站| 99久久国产综合精品麻豆 | 国产精品午夜电影| 韩国黄色网址| 亚洲人人在线| 久re这里只有精品最新地址| 交换人生在线| 日本爆乳片手机在线播放| 国产麻豆久久| 性大毛片视频| 中文精品久久久久国产网站| 国产大片线上免费看| 欧美a级成人淫片免费看| 国内a级毛片免费···| 国产亚洲精品拍拍拍拍拍| 啊灬啊灬别停啊灬用力啊免费 | 老师的胸好软| 麻豆磁力链接| 男生gay私视频洗澡| 午夜爽视频| 亚洲人成7777影视在线观看| 强乱中文字幕在线播放不卡| 亚洲国产成人久久综合一区77| 亚洲国产一区二区三区在线观看| 中文字幕在线播放第一页| 再深点灬舒服灬太大了网站| 国产**aa全黄毛片| 国产成a人片在线观看视频下载| 野花日本免费观看高清电影8| 亚洲国产精品一区二区九九| 免费搞基| 老公去上班的午后时光| 涩涩快播| 国产一区福利| 亚洲精品成人a在线观看| 动漫成人在线| 91青青草视频在线观看| 里番库全彩本子彩色h琉璃| 日本无卡无吗在线| 日本三级在线观看免费|