PythonによるYouTube検索ワード(サジェスト)の調べ方

PythonによるYouTube検索ワード(サジェスト)の調べ方 プログラミング

「YouTubeのSEO対策を行いたい」
「無料でYouTubeの検索ワードを調べたい」
「YouTubeのサジェストを一括でダウンロードしたい」

このような場合には、この記事が役に立ちます。
この記事では、Pythonによる検索ワードの調べ方を解説しています。

本記事の内容

  • YouTubeの検索ワードとは?
  • YouTubeの検索ワードを調べるために必要なモノ
  • 【サンプルコード】YouTubeの検索ワードを調べる方法

それでは、上記に沿って解説していきます。

YouTubeの検索ワードとは?

YouTubeの検索ワードを定義しておきます。
YouTubeの検索ワードとは、検索する際に出てくるキーワードのことです。

YouTube サジェストと言われることも多いです。
このキーワードが、YouTubeのSEO・マーケティングでは重要と言われています。

だから、この検索ワードには価値があります。
それ専用の有料ツールが、存在するほどです。

そもそも、YouTubeの検索ワードはコピーするのが難しいです。
画像認識でもすれば、自動でキーワードを取得できる可能性はあります。

でも、画像認識で大量のキーワードを調査するのは現実的ではありません。
このような事情から、お金を払ってでも欲しい情報となるのでしょう。

お金に余裕がある場合は、有料ツールの利用も一つの選択肢となります。
しかし、個人的には、公開されている情報に対してはお金を払いたくありません。

それに公開されている情報なら、スクレイピングすればいいだけです。
ということで、YouTubeの検索ワードをスクレイピングします。

なお、YouTubeの検索ワードでは、注意点があります。
ログインしていれば、そのアカウントにカスタマイズされた情報になってしまいます。

そのため、Chromeのシークレットモードで確認する必要があります。

以上、YouTubeの検索ワードについて説明しました。
次は、YouTubeの検索ワードを調べるために必要なモノを確認します。

YouTubeの検索ワードを調べるために必要なモノ

スクレイピングするために、プログラミングのスキルが必須です。
そして、利用するプログラミング言語はPythonとなります。

もちろん、他の言語を利用しても可能です。
しかし、Pythonがスクレイピングには最適だと言えます。
そのため、この記事ではPythonで説明を行います。

肝心のスクレイピングは、Seleniumで行います。
Seleniumを動かすためには、次の記事が参考になります。

基本的には、上記の通りにすれば問題はありません。
ただ、2021年10月13日にSelenium 4がリリースされました。

そして、Selenium 3とは完全互換がありません。
すでに、問題を見つけました。
その問題の解決方法については、次の記事でまとめています。

おそらく、他にまだまだ問題はあるでしょう。
よって、Selenium 3とSelenium 4は違うモノだと考えた方が無難です。

この記事では、Selenium 4の利用を前提とします。
新しくSeleniumをインストールする場合は、Selenium 4となります。

以上、YouTubeの検索ワードを調べるために必要なモノの説明でした。
次は、実際にYouTubeの検索ワードを調べるサンプルコードを見ていきます。

【サンプルコード】YouTubeの検索ワードを調べる方法

「スペアリブ」に関する、YouTubeの検索ワードを取得します。

上記一覧を第1階層のデータとします。
これに加えて、さらに第2階層のデータも取得しましょう。

第2階層とは、第1階層にあるキーワードに対する検索ワードになります。
つまり、「スペアリブ 圧力鍋」を入力した際のデータ一覧ということです。

第1階層、第2階層を一気に取得するコードは、以下。
Selenium 4利用が前提のコードです。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome import service as fs
from selenium.webdriver.chrome.options import Options
import unicodedata
import time

KEYWORD = "スペアリブ"
WAIT_TIME = 1
CHROMEDRIVER = "chromedriver.exeのパス"


def get_suggestion(target_driver, target_word):
    # 検索ボックスにキーワード入力
    element = target_driver.find_element(By.NAME, 'search_query')

    # 入力されている値を消す
    # element.clear()で一瞬に削除可能だが、あえて人間に近い動作を行う
    value = element.get_attribute("value")
    if value:
        r = range(len(value))
        for i in r:
            element.send_keys(Keys.BACK_SPACE)

    # 値を入力
    # 値入力後に動きがないとサジェスト一覧が出ない
    # 半角スペースとBack Spaceでその動きをカバーする
    element.send_keys(target_word)
    element.send_keys(' ' + Keys.BACK_SPACE)
    element.send_keys(' ' + Keys.BACK_SPACE)

    # サジェスト一覧が出るまでの待機時間
    time.sleep(WAIT_TIME)

    # ワード抽出
    word_list = []
    elements = target_driver.find_elements(By.CLASS_NAME, "sbqs_c")
    for e in elements:
        if target_word != e.text:
            word_list.append(e.text)

    return word_list


if __name__ == "__main__":

    # 半角変換
    input_keyword = unicodedata.normalize("NFKC", KEYWORD)
    # 小文字変換
    input_keyword = input_keyword.lower()

    # ヘッドレスモードでブラウザを起動
    options = Options()
    options.add_argument('--headless')

    # ドライバー指定でChromeブラウザを開く
    chrome_service = fs.Service(executable_path=CHROMEDRIVER)
    driver = webdriver.Chrome(service=chrome_service, options=options)

    # YouTubeアクセス
    driver.implicitly_wait(10)
    driver.get('https://www.youtube.com/')

    word_list_1 = get_suggestion(driver, input_keyword)

    print(input_keyword)
    print("第1階層")
    print(word_list_1)
    print("第2階層")

    for word in word_list_1:
        word_list_2 = get_suggestion(driver, word)
        print(word_list_2)

    # ブラウザを閉じる
    driver.quit()

上記を実行した結果は、以下。

サンプルコードでは、コンソールに結果を表示しているだけです。
実際に運用する場合は、csvやデータベースに保存することになりますね。

では、コードについても説明しておきます。
基本的には、コメントを読んでください。

まずは、設定についてです。

KEYWORD = "スペアリブ" 
WAIT_TIME = 1 
CHROMEDRIVER = "chromedriver.exeのパス"

CHROMEDRIVERの意味がわからない場合は、案内した記事を見直してください。
WAIT_TIMEは、検索ワード一覧が取得できない場合に伸ばします。
「1」を「2」に変更すれば、改善されるはずです。

あとは、コメントを見てください。
コメントを読んでわからない場合は、Selenium 4の公式ドキュメントを見ましょう。

以上、【サンプルコード】YouTubeの検索ワードを調べる方法を説明しました。

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