プログラミング(Python)

FANZAの作品をつぶやくアダルトアフィリエイトBotを作成してみた。

2022年3月15日

この記事ではtwitterでのアダルトアフィリエイトのためのFANZAのBotの作り方を解説しています。

Twiliaを購入してみた

はじめに。実行環境などの下準備

今回はSeleniumを使ってブラウザを自動操作して情報を抜き出します。

PythonとSeleniumで実行しているため準備をお願いします。

FANZAで情報取得

ではSeleniumを使って実際にFANZAから情報を抜き出してみましょう。

今回は以下のページから情報を抜き出してみたいと思います。

https://www.dmm.co.jp/digital/anime/-/detail/=/cid=h_1261amcp00111/

18歳以上ですをクリックせずに突破

そのまま上記のURLに飛ぶと以下の画面が出てきます。

うっとおしいのでリンクに情報を入れてアクセスしてみます。

やり方は、

https://www.dmm.co.jp/age_check/=/declared=yes/?rurl=

こいつを頭につけてあげて、エンコードした対象のURLをくっつけてあげるだけです。

以下のようになります。

https://www.dmm.co.jp/age_check/=/declared=yes/?rurl=https%3A%2F%2Fwww.dmm.co.jp%2Fdigital%2Fanime%2F-%2Fdetail%2F%3D%2Fcid%3Dh_1261amcp00111%2F

ではこのURLにアクセスしてみましょう。

無事そのままアクセスできました。

では情報を抜いてみますか。

タイトル取得

ではタイトルを取得していきます。

HTMLで対象の要素を見ます。(今回だけ一緒にみていきます。)

緑で示しているところをクリックします。

それから紫のように知りたい部分にもっていきます。

そしたら赤のところに要素のHTMLが表示されます。

では、取得するコードを見ます。

from selenium import webdriver
import urllib

driver = webdriver.Chrome()
driver.set_window_size(1295,722)

add_check_url="https://www.dmm.co.jp/age_check/=/declared=yes/?rurl="
work_url = 'https://www.dmm.co.jp/digital/anime/-/detail/=/cid=h_1261amcp00111/'

# urllib.parse.quote(work_url)でエンコードしてあげている。
url = add_check_url + urllib.parse.quote(work_url)
driver.get(url)

title_element = driver.find_element_by_css_selector('#title')
title = title_element.text
print(title)

画像取得

タイトルが取得出来たら次はサムネイルの画像URLを取得してみます。

ついでに、保存する方法も記載しておきますね。

sample_element = driver.find_element_by_css_selector('#sample-video')
thumbnail_element = sample_element.find_element_by_css_selector('a')
thumbnail_link = thumbnail_element.get_attribute('href')
print(thumbnail_link)

# 保存の仕方は以下
urllib.request.urlretrieve(thumbnail_link, 'thumbnail.jpg')

軽く説明すると「sample-video」という名前のIDを探します。

その下の階層の「aタグ」を検索します。

見つかったaタグの中の「href」という属性の値を抜き出しています。

抜き出せた値がサムネイルのURLになります。

では保存の仕方ですが、以下のコードでできます。

urllib.request.urlretrieve("URL", '保存する画像の名前(path指定可)')

Twitterで投稿

ではツイートするコードとともに全体のコードを見てみましょう。

ツイートするコード自体を詳しく知りたい方は以下の記事へ

全体のコード

from selenium import webdriver
import urllib

driver = webdriver.Chrome()
driver.set_window_size(1295,722)

add_check_url="https://www.dmm.co.jp/age_check/=/declared=yes/?rurl="
work_url = 'https://www.dmm.co.jp/digital/anime/-/detail/=/cid=h_1261amcp00111/'

# urllib.parse.quote(work_url)でエンコードしてあげている。
url = add_check_url + urllib.parse.quote(work_url)
driver.get(url)

title_element = driver.find_element_by_css_selector('#title')
title = title_element.text
print(title)

sample_element = driver.find_element_by_css_selector('#sample-video')
thumbnail_element = sample_element.find_element_by_css_selector('a')
thumbnail_link = thumbnail_element.get_attribute('href')
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)

MGS動画 Versionはこちら

お知らせ:FANZAのBotのコードを有料公開しました。

FANZAの作品をつぶやくアダルトアフィリエイトBotを作成してみた。

どうしても量は多くなってしまいますが、解説もかいたので勉強してみたい方はぜひ購入してみてください。

分からないことなど質問受け付けます。

-プログラミング(Python)
-, ,