この記事ではtwitterでのアダルトアフィリエイトのためのMGS動画のBotの作り方を解説しています。
Twiliaを購入してみた
はじめに。実行環境などの下準備
今回はSeleniumを使ってブラウザを自動操作して情報を抜き出します。
PythonとSeleniumで実行しているため準備をお願いします。
MGS動画で情報取得
ではSeleniumを使って実際にMGS動画から情報を抜き出してみましょう。
今回は以下のページから情報を抜き出してみたいと思います。
https://www.mgstage.com/monthly/shiroutotv/video/SIRO-4820/
18歳以上ですはクリックしないとダメっぽい
そのまま上記のURLに飛ぶと以下の画面が出てきます。
これは「FANZA」と違って「はい」をクリックしてあげないとダメっぽいです。
ソースコード覗いてみると「60*24*7」と書いてあったんで一週間は大丈夫みたいですね。
ただこの情報はクッキーに保存されるんでSeleniumを新しく立ち上げる時には毎回出てきちゃいますね。
まー動かしてる時には問題ないと思うんでクリック動作入れてサクッと次に行きますか。
IDが「AC」なんで簡単にクリックできますね。
要素の見方とかは次の章で書いていきます。
では情報を抜いてみますか。
タイトル取得
ではタイトルを取得していきます。
HTMLで対象の要素を見ます。(今回だけ一緒にみていきます。)
緑で示しているところをクリックします。
それから紫のように知りたい部分にもっていきます。
そしたら赤のところに要素のHTMLが表示されます。
では、取得するコードを見ます。
from selenium import webdriver
import urllib
driver = webdriver.Chrome()
driver.set_window_size(1295,722)
driver.get('https://www.mgstage.com/monthly/shiroutotv/video/SIRO-4820/')
driver.find_element_by_css_selector('#AC').click()
title_element = driver.find_element_by_css_selector('.tag')
title_date = title_element.text
print(title_date)
# このままだと公開日まで入ってしまう
# 公開日だけを抽出してから同じ値を消しますか
date_element = driver.find_element_by_css_selector('.date')
date = date_element.text
print(date)
title = title_date.replace(date,'')
print(title)
コメントアウトでも書いていますがタイトルを抜き出そうとすると公開日まで入ってきて邪魔なので公開日だけ排除するようにしました。
replaceで実現できます。「もととなる文字列.replace(変えたい文字列,変換後文字列)」
今回は、「title_date」の中にある「date」を「''」(これは空、つまりただ対象の文字列を消す)となります。
画像取得
タイトルが取得出来たら次はサムネイルの画像URLを取得してみます。
ついでに、保存する方法も記載しておきますね。
thumbnail_element = driver.find_element_by_css_selector('.enlarge_image')
thumbnail_link = thumbnail_element.get_attribute('src')
print(thumbnail_link)
# 保存の仕方は以下
urllib.request.urlretrieve(thumbnail_link, 'thumbnail.jpg')
軽く説明すると「enlarge_image」という名前のClassを探します。
見つかった要素の「src」という属性の値を抜き出しています。
抜き出せた値がサムネイルのURLになります。
では保存の仕方ですが、以下のコードでできます。
Twitterで投稿
ではツイートするコードとともに全体のコードを見てみましょう。
ツイートするコード自体を詳しく知りたい方は以下の記事へ
全体のコード
from selenium import webdriver
import urllib
driver = webdriver.Chrome()
driver.set_window_size(1295,722)
work_url = 'https://www.mgstage.com/monthly/shiroutotv/video/SIRO-4820/'
driver.get(work_url)
driver.find_element_by_css_selector('#AC').click()
title_element = driver.find_element_by_css_selector('.tag')
title_date = title_element.text
print(title_date)
# このままだと公開日まで入ってしまう
# 公開日だけを抽出してから同じ値を消しますか
date_element = driver.find_element_by_css_selector('.date')
date = date_element.text
print(date)
title = title_date.replace(date,'')
print(title)
thumbnail_element = driver.find_element_by_css_selector('.enlarge_image')
thumbnail_link = thumbnail_element.get_attribute('src')
print(thumbnail_link)
urllib.request.urlretrieve(thumbnail_link, 'thumbnail.jpg')
# Consumer Keys
ck = "Consumer Key"
cs = "Consumer Key Secret"
# Authentication Tokens
at = "Authentication Token"
ats = "Authentication Token Secret"
auth = tweepy.OAuthHandler(ck, cs)
auth.set_access_token(at, ats)
api = tweepy.API(auth)
media_ids= []
images=["thumbnail.jpg"]
for image in images:
img = api.media_upload(image)
media_ids.append(img.media_id)
text="test\n改行"
api.update_status(status=text, media_ids=media_ids)
FANZA Versionはこちら
お知らせ:FANZAのBotのコードを有料公開しました。
FANZAの作品をつぶやくアダルトアフィリエイトBotを作成してみた。
どうしても量は多くなってしまいますが、解説もかいたので勉強してみたい方はぜひ購入してみてください。
分からないことなど質問受け付けます。