こんにちは、あぶちゃです。
このブログでは、AI業界への転職を考えている方に役立つ情報をお届けしています。転職に役立つヒントから最新のAIツールや技術の紹介をしています。本ブログによって、少しでもAIの魅力を感じていただけると嬉しいです!
ブログのキーワード選定って重要なのはわかっているけど時間がかかる!効率よくやる方法はないの?
以上のような疑問にお答えしていきます。
このブログ記事は、ブログのキーワード選定を自動化して効率化したい!と考えている読者を対象としています。
- Webスクレイピングの方法
- 競合サイト調査 自作ツールの作り方
検索サイトからのアクセスを増やすためには、適切なキーワード選定が重要です。
しかし、キーワード選定は時間がかかる作業であり面倒くさくて結局、いい加減に選んでしまっていませんか?
そんな時は、Webスクレイピング技術を用いて、競合サイトを調査するPythonの自作ツールが大活躍します!
本記事では、Seleniumを用いたブログキーワード選定をする際の競合サイト調査を自動化できる自作ツールを紹介します。
時間がかかる競合サイト調査を自動化して、キーワード選定の効率化を行いましょう!
以下の記事では、AI職種を6つ紹介しています。未経験からでも転職は可能なので、AIに興味がある方は参考にしてみてください。
AIエンジニアを目指すには?
AI技術はビジネスや社会の様々な分野で急速に活用されるようになっており、pythonを使ってAI技術を実装できる「AIエンジニア」は益々、貴重な存在になっており、高収入も期待できます!
働きながら「AIエンジニア」を目指すなら、初心者でも無理なく学習ができ、就職サポートがあるオンラインスクールがおすすめです。
【参考】AI×Pythonに特化したオンラインスクール
- 選抜された現役エンジニアから学べるオンラインに特化したプログラミングスクール
- 初心者が9割以上。週2回のメンタリングにより個別に目標を設定するため、挫折せずに学べる。
- 一人ひとりのスキルに合わせた転職の機会の提供とサポート
無料体験や無料でキャリア相談もできるため、迷っている方はまずは、体験や相談してみることで、AIエンジニアとしてのキャリアを具体的にイメージできるようになります!
競合サイト調査 自作ツールで実現したいこと
ブログキーワード選定の必要性
ブログの記事を書く際に、どのキーワードで記事を書くかを選定することは検索サイトからのアクセスを増やすためのSEO対策としてとても重要です。
誰も検索しないキーワードを選定してしまったら、いかに素晴らしい記事を書いても誰も読んでくれません。
また、競合が多いキーワードを選んでしまったら検索エンジン上での上位表示をされることが難しく、それもまた記事が埋もれてしまって誰も読んでくれないといったことが起こってしまいます。
キーワード選定はユーザーのニーズに合ったコンテンツを提供し検索エンジン上での上位表示をする上でとても重要ですが、一般的に以下のような作業を行う必要があり、時間がかかります。
キーワード選定方法
まずは、読者が興味を持ちそうな記事のテーマを決めます。
例えば、副業のテーマに関しての記事を書きたい場合は、テーマは「副業」になります。
洗い出したキーワードの中からより適切なキーワードに絞り込みます。
キーワードプランナーなどでキーワードの検索ボリュームを調べ、狙いとする検索ボリュームのキーワードから絞り込んでください。
ロングテールキーワード(月間の検索ボリュームが、1,000未満のもの)を狙うと良いと言われています。
絞り込んだキーワードの競合サイトを調査します。
絞り込んだキーワードで検索をしてみて、上位表示されているサイトがどのようなサイトなのかを調べます。
もし、上位表示されているサイトが企業サイトなどの強いサイトではなく、無料ブログやQ&Aサイトの場合であれば、自身の記事が上位表示される可能性が高まります。
競合サイトの調査結果により、最終的なキーワードを選定します。
ラッコキーワードやキーワードプランナーの使い方に関しては、yuji blog.さんのブログキーワード選定のやり方6ステップ【穴場キーワードを探すコツ】が参考になります。
今回のプロジェクトの目的
上記のキーワード選定方法の中で、一般的に使用されている無料ツールなどがなく、時間がかかる部分は「Step 4 競合サイトの調査」になります。
「Step 4 競合サイトの調査」を自動化できれば、キーワード選定の時間を短縮することができ、より質の高い記事を作成するために時間をもっと使えるようになります。
よって、目的を以下としました。
絞りこんだキーワードの競合サイトを自動で検索できる「競合サイト調査の自作ツール」を作成する。
今回のプロジェクトの目標と必要な機能
Webスクレイピングという技術を使うことで、絞り込んだキーワードで検索した際に上位表示されている競合サイトの情報を自動的に取得することが目標になります。
また、目標を達成するために必要な機能を以下のように、設定しました。
必要な機能
- 指定したキーワードで自動的に検索を行い、競合サイト調査に必要な情報である「サイト名」、「記事タイトル」、「サイトのURL」を取得する
- 取得した情報をエクセルに出力する
コア技術 | Webスクレイピング
わかりやすく言うと、Webサイトに記載されているたくさんの情報から必要な情報(テキスト、画像や動画など)のみを自動的に抽出して取得するための技術になります。
Webスクレイピングを使用することによって、手動でデータを収集する場合に比べて非常に高速かつ大量にデータを収集することができます。
今回、使用するpython ライブラリ
「Google Colaboratory (Colab)」を使うと自身のパソコンに開発環境を構築しなくても、ブラウザ上でPythonコードを書いたり、実行したりすることができます。
自身のPythonの開発環境がない方は、Colabを使うことで簡単にPythonを使ってみることができます!
Selenium
概要
Seleniumは、Pythonを含む複数のプログラミング言語で使用できるWebアプリケーション自動化ツールです。
主な用途は、Webブラウザを自動化してWebアプリケーションの機能をテストすることですが、Webスクレイピングにも使用することができます。
Pythonで使用する場合は、WebDriverと呼ばれるPythonモジュールをインストールすることで使用することができます。
競合サイト調査の自作ツールでのSeleniumの用途
上記で定義した必要な機能の1つ目の機能である
- 指定したキーワードで自動的に検索を行い、競合サイト調査に必要な情報である「サイト名」、「記事タイトル」、「サイトのURL」を取得する
を実現するためにSeleniumを使用します。
xlwing
概要
xlwingsは、PythonでExcelファイルを操作するためのライブラリです。
Pythonを用いて、Excelのワークシート、グラフ、およびVBAマクロを制御でき、ExcelのGUIを操作せずに、Pythonのコードを使用してExcelファイルを読み込んだり、作成したり、更新したりすることができます。
競合サイト調査の自作ツールでのxlwingの用途
上記で定義した必要な機能の2つ目の機能である
- 取得した情報をエクセルに出力する
を実現するためにxlwingを使用します。
事前準備
pythonライブラリのインストール
以下のコマンドをターミナルで実行して、必要なpythonライブラリをインストールしてください。
Seleniumのインストール
pip install selenium
xlwingのインストール
pip install xlwings
Seleniumを使用するための事前準備
Seleniumを使用するためには以下の事前準備を行う必要があります。
- google chromeドライバーの入手
-
Google Chromeドライバーは、SeleniumでChromeを制御するために必要になります。
現在、使用しているGoogle Chromeブラウザのバージョンを確認し、Chromeドライバーのサイトから自身のChromeバージョンに対応するChromeドライバーをダウンロードしてください。
- googleアカウントのプロフィールパス取得
-
Seleniumを使ってgoogleにアクセスする際、googleアカウントを指定してあげないと以下の問題が発生します。
Cookieの設定が完了しているgoogleアカウントのプロフィールパスを事前に取得して、コード内で指定する必要があります。
以下の記事で、Seleniumを使用するための事前準備の詳細の方法を解説しています。Seleniumを使ったWebスクレイピングの方法も解説していますので、参考にしてください。
競合サイト調査 ツール pythonコード
フォルダ構成
競合サイト調査 ツールのフォルダ構成を以下で構成しています。
コードの構成
本記事のコードの構成方法は
- メインコード内でユーザー変数を定義
- メインコードから「google検索結果を取得する関数」を実行
- 「google検索結果を取得する関数」からメインコードに結果を返す
- メインコードから結果を「エクセルに出力する関数」を実行
- 「結果をエクセルに出力する関数」が結果をエクセルに出力
となり、以下の画像のようにデータをやり取りして、絞りこんだキーワードの競合サイトを自動で検索しています。
ユーザー変数
変更が必要な変数は以下の5つの変数になります。
keyword
調べたいキーワードを入力してください。
例:副業、おすすめの2語のキーワードで検索したい場合は、keyword = “副業 おすすめ”と入力してください。
require_page_num
googleの検索結果の何ページ目までの競合サイトを調べたいか入力してください。
chrome_driver_path
chromeドライバーの保存先フォルダのパスを入力してください。
profile_path
取得したgoogleアカウントのプロフィールのパスを入力してください
excelfile_name
結果を保存する希望のエクセルファイル名を入力してください。
ユーザーが変更する必要がある変数は、簡単にアクセスできるようにすべてメインコード内にまとめました。
メインコード
from Function import BlogKeywordFunc
# ユーザー定義
# 調べたいキーワードを入力
keyword = "調べたいキーワードをこちらにいれてください"
# 何ページ目まで調べたいかを入力
require_page_num = 1
# chrome driverのパスを入力
chrome_driver_path = "chrome driverを保存したフォルダのパスをいれてください"
# google アカウントのプロフィールパス定義
profile_path = "使用したいgoogle アカウントのプロフィールのパスを入力してください"
# Excelファイル名定義 必要に応じて適宜変更ください。
excelfile_name = "competitor_site_info.xlsx"
# プログラム実行
# google検索で、サイト名、タイトル、サイトのURLを取得する。
result_list = BlogKeywordFunc.google_search_result(
keyword, require_page_num, chrome_driver_path, profile_path)
# どのセルに結果を出力するか定義
startcell = "A1"
# シート名を定義
sht_name = keyword
BlogKeywordFunc.save2excel(result_list, startcell, sht_name, excelfile_name)
関数コード
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import xlwings as xw
import pandas as pd
# seliniumによるwebスクレイピング「サイト名」、「記事タイトル」、「サイトのURL」を取得する
def google_search_result(keyword, require_page_num, chrome_driver_path, profile_path):
# 待機時間の設定[s]
wait_time = 3
# google chrome プロフィールパス定義
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--user-data-dir="+profile_path)
# chrome driverを使って、googleサイトにアクセス
driver = webdriver.Chrome(
executable_path=chrome_driver_path, options=chrome_options)
driver.get("https://www.google.co.jp/")
# INTERVAL秒間待つ
time.sleep(wait_time)
# 検索欄にキーワードを入力
elem = driver.find_element(By.NAME, "q")
elem.send_keys(keyword)
# INTERVAL秒間待つ
time.sleep(wait_time)
# 検索実行ボタンをクリックする
driver.find_elements_by_name('btnK')[0].click()
# 変数の初期化
page = 1 # ページ数の初期値
site_name_list = [] # サイト名のリスト初期化
title_list = [] # タイトルのリスト初期化
site_url_list = [] # URLのリスト初期化
while page <= require_page_num:
# INTERVAL秒間待つ
time.sleep(wait_time)
# サイト名、タイトル、サイトのURLが入った箇所を取得
serch_result_list = driver.find_elements_by_css_selector('.yuRUbf')
# サイト名、タイトル、サイトのURLを取得する。
for serch_result in serch_result_list:
# 取得したサイト名が空でない場合に、それぞれのリストに情報を追加
try:
if serch_result.find_element_by_class_name('VuuXrf').text:
site_name_list.append(
serch_result.find_element_by_class_name('VuuXrf').text)
title_list.append(
serch_result.find_element_by_tag_name('h3').text)
site_url_list.append(serch_result.find_element_by_tag_name(
'a').get_attribute('href'))
except:
pass
# ページの遷移
if page < require_page_num:
next_page_url = driver.find_element_by_id(
'pnnext').get_attribute('href')
driver.get(next_page_url)
page += 1
# chrome driveを修了する
driver.close()
# サイト名、タイトル、サイトのURLを一つのデータフレームにする
# 順位を示すリストを作成する。
order_list = []
for i in range(len(site_name_list)):
order_list.append("順位"+str(i+1))
# pandasデータフレームを作成
result_list = [site_name_list, title_list, site_url_list]
result = pd.DataFrame(result_list, index=[
"サイト名", "タイトル", "サイトのURL"], columns=order_list).T
return result
# 取得した情報をエクセルに出力する
def save2excel(data_in, startcell, sht_name, excelfile_name):
wb = xw.Book()
wb.sheets.add(sht_name)
xw.Range(startcell).value = data_in
wb.save(excelfile_name)
wb.close()
実行結果
メインコードを保存しているフォルダに、エクセルファイルが作成されます。
「サイト名」、「記事タイトル」、「サイトのURL」が出力されており、目標を達成できました!
“最後に” 競合サイト調査 自作ツール | まとめ
本記事では、Seleniumを用いたブログキーワード選定をする際の競合サイト調査を自動化できる自作ツールをノンプログラマーの方でも使用できるようにわかりやすく解説しました。
時間がかかる競合サイト調査を自動化することでキーワード選定の効率化を行うことができます。
より適切なキーワードを選定を行うことで、検索サイトからのアクセスを増やしていきましょう!
本記事のまとめは、以下になります。
- 絞りこんだキーワードの競合サイトを自動で検索できる「競合サイト調査の自作ツール」を作成した
- 実装した機能としては以下の2つ
- 指定したキーワードで自動的に検索を行い、競合サイト調査に必要な情報である「サイト名」、「記事タイトル」、「サイトのURL」を取得する
- 取得した情報をエクセルに出力する
- 今回、使用したpython ライブラリ
- Selenium
- xlwing
- ノンプログラマーの方でも使用できるように、ツールの全pythonコードを公開し、ツールを活用するために必要な事前準備やツールの構成に関しての徹底解説した
Pythonを使ったツールとして、一括で画像圧縮を実現する方法も解説しています。興味がある方は、ぜひご覧ください!
AIエンジニアを目指すには?
「今の仕事にやりがいを感じられない」、「もっと高収入の仕事に就きたい」と思っているけど、一歩踏み出せずに日々を過ごしてしまっていませんか?
自分が情熱を持てる仕事で社会や人に貢献することで、自身の人生の充実度や幸福度をアップしたいと悩んでいる人も多いはず。
そんな人には、最先端のAI技術を使って、より良い世の中を実現していく「AIエンジニア」を目指すことをおすすめします。
AI技術はビジネスや社会の様々な分野で急速に活用されるようになっており、pythonを使ってAI技術を実装できる「AIエンジニア」は益々、貴重な存在になっており、高収入も期待できます!
働きながら「AIエンジニア」を目指すなら、初心者でも無理なく学習ができ、就職サポートがあるオンラインスクールがおすすめです。
AI×Pythonに特化したオンラインスクール
- 選抜された現役エンジニアから学べるオンラインに特化したプログラミングスクール
- 初心者が9割以上。週2回のメンタリングにより個別に目標を設定するため、挫折せずに学べる。
- 一人ひとりのスキルに合わせた転職の機会の提供とサポート
無料体験や無料でキャリア相談もできるため、迷っている方はまずは、体験や相談してみることで、AIエンジニアとしてのキャリアを具体的にイメージできるようになります!
最後まで、お付き合いいただきまして、ありがとうございました。