XでDMMアフィリエイト攻略!APIとスクレイピングを駆使してみた その1

スクレイピング

XでDMMアフィリエイトを行うのが流行っているらしい。
ってわけで挑戦してみることにした!

メールサーバーの立ち上げ??

何はともあれ、Xのアカウントを用意しなくてはならないので、メールアドレスが大量に必要になる。
Gmailで大量にアカウントを作成してもいいのだが、ここはエンジニアらしくメールサーバを立ち上げて、メールアドレスを量産体制を作るのがコスト的にも効率的にも理にかなっているような気がしている。

が、メールサーバの立ち上げはその後の運用まで考えると、結構敷居が高いので、サクッとあきらめてレンタルサーバのメールサーバだけ借りることにした。
月額200円もしないし、Gmailの新規登録って意外と面倒。
手始めに、数アカウント作る分にはGmailでもいいが、もし万が一!を考えるとこの段階でメールサーバを借りてしまうのは先行投資としてはありとの判断。

Xでの運用方法について考える

とりあえず、メールアドレスを10個作って、Xのアカウントを10作ってみたw
基本同じ動作をしていると、右と左の画像組み合わせクイズを毎回やらされるwww

そんなこんなで、10個アカウントを作った!
結構しんどかった・・・。

その後の運用はAPIを活用して自動投稿する方向性を考えたが、とりあえず手動で3つの方向性を変えたアカウントの運用を行ってみる。

残りの7アカウントは、シャドバン対策用にしばらく寝かせる。あとは凍結時に即動かせるアカウントとしてベンチ待機。

3つのアカウントの運用方法

  • AVのサンプルを活用したアフィリエイト
    キャラは男性、ジャンルを2つに絞りつぶやく設定、あとはAIにお任せw
  • AVのサンプルを活用したアフィリエイトその2
    キャラの設定は、裏垢女子風で自己の体験をもとにつぶやく感じ、その他Ai任せww
  • 同人漫画をメインとしたアフィリエイト
    キャラはアニヲタ女子の設定、その他Ai任せwww

あとやるとしたらFanazaブックスのアフィリエイトをも考えたが、手が回らなくなる恐れがあるので、ちょっと様子を見てからの参戦予定。ベンチには7つのアカウントがありますからw

ここでpythonの登場!(デデーン

時間効率にはトコトンこだわりたいので、1つのツィートに時間はかけたくない。

退屈なことはpythonにやらせる!
はい、正しい選択です。

エロ動画のAPIの使い方は知っている頭に描いたものがあるのであまり触れないが、アニヲタ女子(同人)ってAPIの活用できるのだろうか。。。

とりあえずAPIから

スクレイピングで引っこ抜くのがサクッと行けそうだけど、師匠(googleがせんせー)が言ってた!
「APIがあるならそれから使え!」

とりあえずAPIを叩いてみた↓

import requests

cid = "d_317845" #作品ID

api_id = " Your API ID "
affiliate_id = " Your Affiliate ID "

url = f"https://api.dmm.com/affiliate/v3/ItemList?api_id={ api_id }&affiliate_id={ affiliate_id }&site=FANZA&cid={ cid }&output=json"

# APIにリクエストを送信
response = requests.get(url)

# ステータスコードを確認
if response.status_code == 200:
    # JSONを辞書型に変換
    data = response.json()
else:
    print(f"エラーが発生しました。ステータスコード: {response.status_code}")

返信がこちら↓ とにかく見ずらいw

{'request': {
    'parameters': {
        'api_id': '[ Your API ID ]', 
        'affiliate_id': '[ Your Affiliate ID ]', 
        'site': 'FANZA', 
        'cid': 'd_317845', 
        'output': 'json'
        }
    }, 
    'result': {
        'status': 200, 
        'result_count': 1, 
        'total_count': 1, 
        'first_position': 1, 
        'items': [
            {
                'service_code': 'doujin', 
                'service_name': '同人', 
                'floor_code': 'digital_doujin', 
                'floor_name': '同人', 
                'category_name': '同人 (同人)', 
                'content_id': 'd_317845', 
                'product_id': 'd_317845', 
                'title': '許嫁になったダウナーギャルに一晩中種付けする話', 
                'volume': '65', 
                'review': {
                    'count': 28, 
                    'average': '4.00'
                    }, 
                'URL': 'https://www.dmm.co.jp/dc/doujin/-/detail/=/cid=d_317845/', 
                'affiliateURL': 'https://al.dmm.co.jp/?lurl=https%3A%2F%2Fwww.dmm.co.jp%2Fdc%2Fdoujin%2F-%2Fdetail%2F%3D%2Fcid%3Dd_317845%2F&af_id=[ Your Affiliate ID ]&ch=api', 
                'imageURL': {
                    'list': 'https://pics.dmm.co.jp/digital/comic/d_317845/d_317845pt.jpg', 
                    'large': 'https://pics.dmm.co.jp/digital/comic/d_317845/d_317845pl.jpg'
                    }, 
                'prices': {
                    'price': '385', 'list_price': '770', 
                    'deliveries': {
                        'delivery': [
                            {
                                'type': 'download', 
                                'price': '385', 
                                'list_price': '770'
                            }]}}, 
                    'date': '2024-01-03 00:00:00', 
                    'iteminfo': {
                        'genre': [
                            {'id': 38, 'name': 'クンニ'}, 
                            {'id': 48, 'name': '制服'}, 
                            {'id': 1034, 'name': 'ギャル'}, 
                            {'id': 2001, 'name': '巨乳'}, 
                            {'id': 5001, 'name': '中出し'}, 
                            {'id': 5002, 'name': 'フェラ'}, 
                            {'id': 151008, 'name': ' ストッキング'}, 
                            {'id': 153003, 'name': 'おっぱい'}, 
                            {'id': 156022, 'name': '男性向け'}, 
                            {'id': 156023, 'name': '成人向け'}, 
                            {'id': 160010, 'name': 'キス'}, 
                            {'id': 160150, 'name': 'コミケ103(2023冬)'}, 
                            {'id': 153022, 'name': '純愛'}
                            ], 
                        'maker': [
                            {'id': 202464, 'name': '聖華快楽書店'}
                            ]}, 
                        'campaign': [
                            {'date_begin': '2024-11-29T12:00:00Z', 'date_end': '', 'title': '50%OFF'}
                        ]}]}}

こんな感じの回答が返ってくる。
試しにXMLでも同じことをしてみた↓ 見やすいとは思うけど取り回し事後処理がメンドクサイ

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<xml>
<request>
<parameters>
<api_id>[ Your API ID ]</api_id>
<affiliate_id>[ Your Affiliate ID ]</affiliate_id>
<site>FANZA</site>
<cid>d_317845</cid>
<output>xml</output>
</parameters>
</request>
<result>
<status>200</status>
<result_count>1</result_count>
<total_count>1</total_count>
<first_position>1</first_position>
<items>
<item>
<service_code>doujin</service_code>
<service_name>同人</service_name>
<floor_code>digital_doujin</floor_code>
<floor_name>同人</floor_name>
<category_name>同人 (同人)</category_name>
<content_id>d_317845</content_id>
<product_id>d_317845</product_id>
<title>許嫁になったダウナーギャルに一晩中種付けする話</title>
<volume>65</volume>
<review>
<count>28</count>
<average>4.00</average>
</review>
<URL>https://www.dmm.co.jp/dc/doujin/-/detail/=/cid=d_317845/</URL>
<affiliateURL>https://al.dmm.co.jp/?lurl=https%3A%2F%2Fwww.dmm.co.jp%2Fdc%2Fdoujin%2F-%2Fdetail%2F%3D%2Fcid%3Dd_317845%2F&af_id=[ Your Affiliate ID ]&ch=api</affiliateURL>
<imageURL>
<list>https://pics.dmm.co.jp/digital/comic/d_317845/d_317845pt.jpg</list>
<large>https://pics.dmm.co.jp/digital/comic/d_317845/d_317845pl.jpg</large>
</imageURL>
<prices>
<price>385</price>
<list_price>770</list_price>
<deliveries>
<delivery>
<item>
<type>download</type>
<price>385</price>
<list_price>770</list_price>
</item>
</delivery>
</deliveries>
</prices>
<date>2024-01-03 00:00:00</date>
<iteminfo>
<genre>
<item>
<id>38</id>
<name>クンニ</name>
</item>
<item>
<id>48</id>
<name>制服</name>
</item>
<item>
<id>1034</id>
<name>ギャル</name>
</item>
<item>
<id>2001</id>
<name>巨乳</name>
</item>
<item>
<id>5001</id>
<name>中出し</name>
</item>
<item>
<id>5002</id>
<name>フェラ</name>
</item>
<item>
<id>151008</id>
<name>ストッキング</name>
</item>
<item>
<id>153003</id>
<name>おっぱい</name>
</item>
<item>
<id>156022</id>
<name>男性向け</name>
</item>
<item>
<id>156023</id>
<name>成人向け</name>
</item>
<item>
<id>160010</id>
<name>キス</name>
</item>
<item>
<id>160150</id>
<name>コミケ103(2023冬)</name>
</item>
<item>
<id>153022</id>
<name>純愛</name>
</item>
</genre>
<maker>
<item>
<id>202464</id>
<name>聖華快楽書店</name>
</item>
</maker>
</iteminfo>
<campaign>
<item>
<date_begin>2024-11-29T12:00:00Z</date_begin>
<date_end/>
<title>50%OFF</title>
</item>
</campaign>
</item>
</items>
</result>
</xml>

ここで気が付いたことが1つ。

サンプル画像のURLがない。
タイトル画像はあるけどサンプルは一切なし。

エロ動画ではガッツリサンプル動画ももらえるのに同人はもらえないみたいなので、APIから得られる情報は、

  • タイトル
  • 価格
  • ジャンル
  • キャンペーン情報

くらい?
とはいえ、短いツィートのなかで活用できるものって少な目?
プレミアムへのアップグレードはまだ早い!!!w

う~んサンプル画像はほしい。
ほしいよな・・・。
ほしいんだよ・・・。
ほしいです。。。

となると次はやつの出番か・・・・

サンプル画像はスクレイピングで奪う

beautifulsoup4を使ってサンプル画像を取得する感じです。

pip install requests beautifulsoup4

サクッとこんな感じで作ってみました↓ (諸事情により取得できません

import requests
from bs4 import BeautifulSoup

# スクレイピングするURL
url = "https://www.dmm.co.jp/dc/doujin/-/detail/=/cid=[ 取得したいcid ]/"

# ユーザーエージェントを設定
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
}

# ページを取得
response = requests.get(url, headers=headers)
response.raise_for_status()

# BeautifulSoupでHTMLを解析
soup = BeautifulSoup(response.text, 'html.parser')

# サンプル画像のURLを取得
images = soup.find_all("img", class_="tdmm-movie__sample__img")  # クラス名は適宜調整
sample_image_urls = [img["src"] for img in images if "src" in img.attrs]

このコード何度やっても目的の画像を取得することができませんでした💦

理由ですが。。。

通過しないと取得できないと取得できないのです💦

その辺は次回にでも・・・。

このサイトを稼働しているVPSはこちら

コメント

タイトルとURLをコピーしました