【Python】検索ワードに関連するキーワードを収集する
機能
検索ワードに関連するキーワードを収集するPythonプログラムです。
任意のキーワードでGoogle検索を行い、検索結果の下部にある「他のキーワード」を収集します。
例えば、「Python 入門」で検索すると「他のキーワード」として以下を収集します。
- Python入門サイト
- Python入門 東大
- python 入門書 2021
- Python入門 2020
- Python入門 関数
- Python入門本 ランキング
- Python入門 Java
- python入門 初心者
さらに、収集したキーワードで検索を行い、収集したキーワードの「他のキーワード」を取集します。
サンプルプログラムでは2階層までキーワードを収集します。
サンプル動画
プログラム
#! python3 # 機能 # 検索ワードに関連するキーワードを収集する # 使い方 # 1.Pythonを実行する # 実行コマンド # python keyword_searcher.py 検索ワード # python keyword_searcher.py Python # python keyword_searcher.py Python 入門 import sys import time from selenium import webdriver from selenium.webdriver.chrome.options import Options import chromedriver_binary # 検索ワードに関連するキーワードを収集する関数 def search_keyword(driver, keyword, level): # Google検索 driver.get("http://google.com/search?q=" + keyword) time.sleep(1) # 検索結果の「他のキーワード」取得 elements = driver.find_elements_by_css_selector(".s75CSd") if len(elements) == 0: elements = [] keyword_list = [] for element in elements: keyword_list.append(element.text) # 指定階層まで検索したら終了 level = level - 1 if level <= 0: return keyword_list # 取得した「他のキーワード」で検索 results = [] for keyword in keyword_list: results += search_keyword(driver, keyword, level) # 重複を削除して返す return list(set(keyword_list + results)) def search(keyword, level): # キーワード検索 driver = webdriver.Chrome() results = search_keyword(driver, " ".join(keyword), level) # キーワード一覧表示 for result in sorted(results): print(result) if len(sys.argv) < 2: sys.exit("使い方:python keyword_searcher.py 検索ワード") # 2階層までキーワードを検索する search(sys.argv[1:], 2)
使い方
- Pythonを実行する
実行コマンド
python keyword_searcher.py 検索ワード python keyword_searcher.py Python python keyword_searcher.py Python 入門
seleniumとchromedriver-binaryをインストールしていない場合は以下のコマンドを実行して下さい。
pip install selenium pip install chromedriver-binary
ドライバーのバージョンによっては実行エラーになる場合があります。
また、ログを抑制する方法などもありますので、以下を参考にして下さい。