【Python】SEO対策に使うため上位100サイトをさくっと抽出するツールを作ってみる

2018年9月23日

広告

SEO対策はとてもめんどくさいです。

何がめんどくさいって調査がとてもめんどくさい。例えば内部リンクを整えようと考えても、自サイトの内部リンクを自力で調査するのは現実的ではありません。

なにかしらのツールを使うべきです。ですがSEO対策ツールってどうしてこう有料なものばっかりなんでしょうか!!!いえビジネスであることは重々承知です。

とはいえ高価すぎる気がしてなりません・・・。なので、無ければ作ってしまおうと思いました。

【python】SEO対策に使うため上位100サイトをさくっと抽出するツールを作ってみる

 

SEO対策を生業にしている人はもちろんですが、最近では個人ブログなりサイトを運営する人も増えてきました。そういった人はgoogleなどの検索順位チェックをおこなっています。

結論から言うとこれが非常にめんどくさいです。googleアナリティクスやサーチコンソールでは自分のサイトの順位しか表示されません。ですが、SEO対策は自分のサイトだけ見ていればいいわけではありません。他のサイトの動きを見ることも重要です。

有名なSEO対策ツールとしてはGRCが有名です。ですが副業や趣味でちょっとサイトを運営しているという人にとっては、とても高いのです!!(最近利用料の値上げをしたようですね)

フリーのソフトもありますが、これがどうにも使い勝手が悪い印象でした。それに大体体験版のような扱いで、本格的に使いたかったらお金払ってねというものです。

フル版を買ってもいいけど、いらない機能まで付いてくるのは正直本位ではありません。

どのツールを選んでも自分にしっくりくるものがないので、Googleの検索順位チェックのためのSEOツールをpythonで作ることにしました。

Google検索順位チェックツール

ほしいと思う機能は沢山ありますが、とりあえず最初ということもあるので、シンプルなものを目指します。

検索キーワードの上位100サイトを検索結果からスクレイピングする

実行画面

↑こんな感じになりました。

ちなみに「python seo対策」で検索した際の画面です。検索キーワードに対しての上位100サイトがズラッと見ることが出来ます。

正直言うとこれだけではなんの分析もできません。ですがここまで出来れば、あとは大体のことはできるでしょう。とにかく直感的に順位状況がすぐに掴めるお手軽さを目指しました。

 

サジェストワードの抽出はすでに作成しているので、そちらを使ってどうぞ

キーワードに関するユーザーニーズを把握することは重要です。これについてもキーワード選定ツールを使うべきでしょう。

有名どころではgoodkeywordなどがありますが、イマイチ直感的ではないと思ったので、関連語の見える化ツールを作成して公開しています。

ちえのわ キーワード検索ツール

googleのAPIを使用して関連ワードを引っ張ってきて、描画ライブラリを使って見える化しています。(スマホでは見づらいと思いますので、お手数ですが、PCで閲覧願います)

キーワードを選定しても、何について書いて良いのかで悩み、なかなか書けないことがあると思います。そういったときはツールでキーワードを検索してみると、思わぬ関連語が見つかるかもしれません。

とはいえ、関連語ツールに頼りすぎるのも要注意です。なぜなら他の人も同じものを見ているからです。

書かれている内容が重複していると判断されると、せっかく気合を入れて書いても検索上位には表示されません。

googleも言っていますが、記事にはオリジナリティが必要です。関連語ツールは誰もが考えている言葉なので、それを説明するだけで終わらないようにしたほうがいいと思います。

(ちなみに作成した際の備忘録も、書いていますので興味がある方はどうぞ、言語はRubyを使っています)

GRCはやっぱりすごい、けど初期リサーチを自動化したいし、アラート機能も欲しい

SEO対策ツールといえばGRCが有名です。契約プランにもよりますが、多くのキーワードを登録しておけますし、過去からの推移もグラフ化してくれます。

それから最も良いと思っている機能はアラート機能です。

かなり細かくアラート設定できるので、GRCはすごいなあと感心しています。

ブロガーの方を見ても大体の人がGRCを使っているようです。

ですがGRCを使っていても、初期リサーチは人間が気づかなければなりません。持っているだけではなく、画面を見て考える必要があります。私はここも自動化していきたいと考えています。

指定キーワードの上位100サイトのタイトルとURLを抽出するpythonのスクリプト

最初に、以下ソースコードです。

beautifulsoupを使って検索結果から情報を取得します。今回pythonで始めてこういったものを作りましたが、ライブラリが使いやすく、時間をかけずに作れるのは便利ですね。

使い方

コマンドプロンプトにて、作成したpyファイルがある場所まで移動して、以下を実行してください。

  • python sample.py プレゼント

「python 〇〇(←作成したファイル名) 〇〇(←検索したいキーワード)」

という感じです。ちなみに検索したいキーワードになにも入力がなかった場合、クリップボードの文字列を取得して、それをキーワードとして結果を取得します。

開発環境

  • Windows10
  • Python 3.6.5

pip

  • beautifulsoup4
  • requests
  • pyperclip(引数なしの場合、クリップボードで検索)

pythonの環境はアナコンダで構築しました。アナコンダのダウンロードページからインストーラーをダウンロードします。手順はこちらのサイトを参考にしました。

バージョンは最新のものからインストールすればいいと思います。ちなみにアナコンダとは必要そうなライブラリなどをまとめて一つのパッケージにしてくれているものです。何を言っとるんだと思われる方は、最初の面倒な設定が不要になるくらいに思っておけばいいと思います。

理由もなければpythonのインストールはanacondaを使えばいいでしょう。

参考サイト

今回のコードはこちらのサイト様のコードを参考にさせていただきました。

google検索順位チェック用のSEOツールをpythonで自作して自動化する。

検索結果の取得と、それをCSVに書き出すところまでを公開してくれています。すごい便利です・・・。タイトルやh1タグ、文字数なども列挙してくれるもので、少し実行完了まで時間がかかるスクリプトです。(上位サイトすべてにアクセスして情報を引っ張ってきているため)。

自動実行のやり方まで書いてくれています・・・。

対してこちらのスクリプトは実行するとタイトルとURLのみ出力。すぐに結果が確認できる、お手軽版としてご活用ください。

 

最後に

pythonを使ったスクレイピングツールは始めて作りましたが、とても便利ですね。beautifulsoupも始めて使ったのですが、正直面白く、やろうと思えばなんでもできるじゃん!という感じです。

参考サイト様では、次回として「検索順位の時系列比較+アラート編」が予告されていますが、まだ投稿がされていません。正直かなり欲しい機能なので待ち続けますが、自分でもトライしてみようかな・・・、という感じです。

もしトライしてうまくいったらエントリします。(できなかったらすみません。)

 

以上です。読んでいただきありがとうございます。

追記

検索結果をデータで貯めるスクリプトを公開しました。

The following two tabs change content below.
sensiki

sensiki

名前:sensiki 職業:サラリーマン。いわゆる理系男子で大学からプログラミングを学び仕事でも活用中。好きな言語はPython。流行に疎いこともあり最近の話題を独自の視点でまとめていこうと思いブログ開始。スクレイピングや統計を用いたエントリを書きたいと思いまながらツールを作成中。