Python
Django
mecab
d3.js
BeautifulSoup

有名アフィリエイトサイトを一覧化(ランキング)するサービスを作成した

アフィリエイトバトル

結構くだらないサイトwを作成。遊びで作るには結構面白かった。pycharmでDjangoを使うには有料版しか無理なのかと思ったら意外にそうでもなく、普通にできた。
https://affiliate-battle.com

スクリーンショット 2018-05-03 1.47.31.png

どんなサイト?

特定のキーワードでクロールして、キーワードで検索に引っかかったサイトをクロール&スクレイピングし、データを構造化。
どのwordpressテーマを使っているかや、サーバーは何を使っているかなどを調査。alexa traffic rankという、アクセス数の指標なども取得。

他にも以下のような機能を実装。  

  • googleのサジェストワード(予測変換)から、データを取得する
  • キーワードの攻略難易度を取得。そのキーワードで記事を書いた際に、上位表示しやすいかどうかを、おおよそ判断できる。
  • キーワードの出現頻度を取得。記事をフォームに入力すると、形態素解析し、どのキーワードが何回出たかをmecabを使ってカウント。
  • wordpressテーマ別に、サイトの一覧を表示。テーマ選びに迷った際にしようする。
  • 若いドメインのサイトを表示。最近参入してきたサイトを一覧化。
  • ジャンル別の人気アフィリエイトサイト一覧を作成。
  • キーワードマップ機能。キーワードに関連する言葉で、よく検索される言葉をマップに。(D3.jsを使用)

スクリーンショット 2018-05-03 1.45.40.png

こんなことに使える

  • 参考にするアフィリエイトサイトを一覧で見れる。
  • 記事を書くときにキーワードの調査ができる
  • wordpressのテーマを決めるときにサンプルのサイトが見れる。
  • どのジャンルに新規に参入するか、競合を見て決める事ができる。

なぜDjango?

  • Djangoの勉強をしたかった。一個作っておけば、他にも作れるので
  • アフィリエイトサイトを一覧化したサイトがなかったので、作りたかった
  • pythonの練習

Djangoは結構なんでもやってくれるフレームワークだとわかった。テストするときは一時的にテーブルを作成することや、モデルからテーブル定義を自動で作成するなど、そこそこ面白い。
また、「PycharmはDjango使えない!」と公式に書いてあるが、できないのはhtml中にpythonのプログラムを書く際に、構文解析をしてくれない(ただのHTMLの文字列として認識されてしまう)だけなので、やろうと思えば全然やれた。
なので、まだDjangoやっていなくてこれからやろうとしている人は、「有料版じゃないとだめなのかー」ではなく、普通にやってみて欲しい。普通にできる。

面倒だった&考えたところ

サイトは更新される

一回クロールしてそれで終わりならOKだが、サイトは生き物でつねに変わるので、結構面倒。wordpressのテーマなんかは結構更新されるので、アップデートをどれくらいの頻度でやるかなども問題になる。httpからhttpsになるなど、柔軟に作っておかないとすぐにぶっ壊れる。wwwありなしなども考慮したり、整合性を保つために考慮すべきことはやまほどある。

何を持って人気のサイトとするか

アフィリエイトサイトなので、本来であれば稼いでいるサイトが、サイト一覧の一位に表示すべきだが、それは不可能(いくら稼いでいるかは判断できない)
なので、alexa traffic rankという、アクセス数に比例して数字が小さくなっていく指標を元に順位付けを行った。ただ、そうなると企業の公式サイトなどもかなり上位に表示されるので、アフィリエイトサイトかどうかを判断する必要がでてくる。

アフィリエイトサイトの判断

アフィリエイトサイトを判断する方法は、各ASPのリンク文字列を検索し、入っていたらアフィリエイトサイトと判断した。ただし、すべてのページにアフィリエイトの広告をはっているとは限らず、幾つかのページをクロールしないとアフィリエイトサイトと判断できない。そのため、目で見てある程度判断する必要がある。
googleアドセンスをしているか、ASPのアフィリエイトをしているか両方をデータとして保持した。

サイトのカテゴライズ

これはかなり難しかった。まずはどういうジャンルがあるかを調べ、ある程度しっかりしたジャンル選定を行った。例えば「格安SIM」など。カテゴライズなので当然少しかぶるところもあるが、そこそこうまく分類できた。
また、サイトは5000サイトほどあるので、目で見てカテゴリを判断するのは面倒。ここはある方法によって自動化したが、詳細は掲載しないw。サイトが複数のジャンルを持てるようにDB設計。

作成完了から4ヶ月ほど経過したが。。

現状のアクセス数は、1日10人ほど。固定のユーザーがついているが、twitter広告なども打ったにしてはあまりユーザーは集まっていない。
まず単純に使える機能を作ったからと言って使ってもらえるとは限らないという事がわかった。「こういう機能あるよ」と言ってもまずその機能を理解するために時間を割いてくれないというイメージ。
アフィリエイトのツールを紹介する記事に、「アフィリエイトバトルっていうサイトがあって、こうこうこういう機能が使いやすくて。。」と書いてもらえばある程度は使ってもらえるかも。。

これから

これからどうしようか考察中。まず、記事を書いて検索流入を増やさないと知ってもらえない。または、有名アフィリエイターの力を借りてなんとかするしかなさそうというのが率直な感想。
やっぱどんなサービスも使ってもらうようになるまでの拡散方法がキーになるんだよなぁ。。