FANZAアフィリエイトのAPIを使うと任意の作品情報を取得することができる。
取得できる情報はタイトル・女優名・再生時間など多くのものが含まれているが、作品の説明文を取得することはできない。
説明文とは赤枠のところです↓
アダルトアフィリエイトサイトを作っていると、文字数稼ぎのために説明文が欲しいと思った方も多いのではないだろうか??
というわけで、説明文をスクレイピングで取得する方法を調べていきます。
まずはソースをチェック。
説明文まわりのソースはこんな感じになっていた。
残念ながら説明文だけを抽出できるIDやclassは使われていないようだ。
ちなみに説明文上のclass「mg-b20」はマージンボトムを20pxにするための汎用的なもの。「lh4」はline-heightを1.4emに設定するためのこちらも汎用的なclass。
ドンピシャで説明文を指定できないため、その外側のbox-rankクラスを指定してスクレイピングすることになるが、この中には商品情報(ブランド名・出演者など)のtableも含まれるためノイズが多い。
なのでここから取得することは避けたい。
どうしようかと悩んだが、ソースに説明文が含まれている箇所を他にも見つけることができた。
メタタグのdescriptionである。
ここに説明文が全文含まれているようなので、メタタグをスクレイピングすれば良さそう。
というわけで、<meta name=”description”>の中身をスクレイピングするPHPコードを下記に書いてみる。
phpQueryを使用。
//取得先URL
$url = "https://www.dmm.co.jp/digital/videoa/-/detail/=/cid=vrkm00541/";
//コンテンツ取得
$contents = file_get_contents($url);
//紹介文取得
$doc = phpQuery::newDocument($contents);
$contents = $doc->find('meta[name="description"]',0)->attr('content');
//HTMLタグ除去
$contents = strip_tags($contents);
//【FANZA(ファンザ)】 文字除去
$contents = str_replace("【FANZA(ファンザ)】","",$contents);
echo $contents;
説明文にHTMLタグが含まれていることがあるのでstrip_tagsをかませることをおすすめします。
またdescriptionには全作品共通で頭に【FANZA(ファンザ)】の文字が付与されているので、str_replaceで削除しておいたほうが良いかもしれない。
スクレイピング時に年齢確認が出る影響で上手くいかない場合は、こちらの記事を参考にコードを追加してみてください。
ちなみに同人作品では説明文にsummary__txtというclassが付けられているため、そちらを指定してスクレイピングできる。
最後に・・・・
動画アフィリエイトの記事内に説明文を追加したところで、SEOに良い効果を与えることはほぼありません!!
説明文をコピペしてるサイトなんて腐るほどありますので(´・ω・`)
※記事内ソースを利用時のいかなるトラブルも責任を負いませんので自己責任にてお願いします
コメント