#やりたいこと
- Microsoft AzureのFace APIを使って、Lineから送られてきた画像から、似ているAV女優を取得する
#やりたいこと— Dai Kawai@RubyPython (@never_be_a_pm) March 3, 2018
そっくりなび、の精度が低すぎ。
あとAV女優の名前がクリックしないとわからないのもよくない。
俺が知りたいのは友達に似ているAV女優の名前であって、アフィリエイトコード入った商品のURLではない。https://t.co/HPleEt68Vw pic.twitter.com/aLEeQ9uAxl
#実装のためのステップ分け
- AV女優の名簿作成 ←いまココ
- AV女優の名前を検索
- AV女優の複数の画像を取得(学習データ)
- AV女優画像の保存
- Microsoft Azure Storageに画像をすべて保存
- AV女優の学習
- Microsoft Face APIを利用して、画像をすべて学習させる
- Line Botとの連携
- AV女優の画像を送信
- AV女優の画像をGoogle App ScriptでMicrosoft Azure Face APIに送信
- 似ているAV女優の画像を受信
- Line Botに返す
#AV女優の名簿作成
- エロサイトの女優リスト一覧ページにアクセス
- 次へのボタンがなくなるまで、つまりすべてのページのAV女優の以下の値を取得
- 名前
- 画像
- CSVに保存する
#スクリプト
- 前に書いたスクリプトのCSSセレクター変えただけなので10分で実装
- リファクタリングとかは一回しか使わないので気にしてないです
getAVActressList.py
import sys
import os
from selenium import webdriver
import pandas
import time
"""***************************************
もろもろの設定
***************************************"""
browser = webdriver.Chrome(executable_path='/mnt/c/workspace/pydev/chromedriver.exe')
df = pandas.read_csv('default.csv', index_col=0) #女優名・女優の画像URLが列に入っている
url = "http://wav.tv/actresses/" #エロサイトの女優リストのページ
"""******************************
CSS SELECTORの設定
******************************"""
PAGER_NEXT = "a.m-pagination--next.is-last.step" #次へボタン
POSTS = "div.m-actress-wrap"
ACTRESS_NAME = ".m-actress--title" #女優名
IMAGE = ".m-actress--thumbnail-img img" #サムネイル画像のURL、srcで画像ファイルを取得できる
"""***************************************
実行部分
***************************************"""
browser.get(url)
while True: #continue until getting the last page
#5-1
if len(browser.find_elements_by_css_selector(PAGER_NEXT)) > 0:
print("Starting to get posts...")
posts = browser.find_elements_by_css_selector(POSTS) #ページ内のタイトル複数
print (len(posts))
for post in posts:
try:
name = post.find_element_by_css_selector(ACTRESS_NAME).text
print(name)
thumnailURL = post.find_element_by_css_selector(IMAGE).get_attribute("src")
print(thumnailURL)
se = pandas.Series([name,thumnailURL],["name", "image"])
df = df.append(se, ignore_index=True)
except Exception as e:
print(e)
btn = browser.find_element_by_css_selector(PAGER_NEXT).get_attribute("href")
print("next url:{}".format(btn))
browser.get(btn)
print("Moving to next page......")
else:
print("no pager exist anymore")
break
#6
print("Finished Scraping. Writing CSV.......")
df.to_csv("output.csv")
print("DONE")
#やりたいこと— Dai Kawai@RubyPython (@never_be_a_pm) March 3, 2018
AV女優の名簿データをスクレイピング終了。データが、6000人近くいるので、これではデータ量が多すぎる。DMMのアダルトに存在するものだけ、データを取得し、それ以外は捨てよう。結構な数で昭和のばばぁいて、これに似ててもそんなメリットないから。 pic.twitter.com/0hOucxzMCS
# 次にやること
- 画像が1枚しかないのは微妙
- DMM APIから、別の画像を取得してくる
- 人多すぎ
- 6000名からもう少し減らしてみる
- あと、かなり古いばばぁが多い
- ばばぁに似ているといわれていてもそこまでうれしくないし、それがサジェストされてしまうのはむかつく
- ボリュームゾーンの20-40代の、現役の画像だけ取得したい
#途中成果物
https://docs.google.com/spreadsheets/d/e/2PACX-1vQ6y7n8FhjDHQPJNuuaaKaO83QtOYqPokux0fh2jY3woItroN8uOFUe3qoix97AIZauyb2g5H8NsH9Q/pubhtml