Pythonでyoutube-search-scraperを使用しYouTubeで検索を行い検索結果を自動的に取得してみます。
取得のためには、youtube-search-scraperライブラリと、Webブラウザを自動で起動するために、bot_studioライブラリが必要です。なお、youtube-search-scraperライブラリは、Windowsでのみ実行されます。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■bot-studioをインストールする
まずは、bot-studioをインストールを行いますが、今回はpipを経由してインストールを行うので、まずWindowsのコマンドプロンプトを起動します。
pip install bot-studio
起動後、上記のコマンドを入力し、Enterキーを押します。
なお、今回は、pythonランチャーを使用しており、Python Version 3.8.5にインストールを行うために、pipを使う場合にはコマンドでの切り替えを行います。
py -3.8 -m pip install bot-studio
切り替えるために、上記のコマンドを入力し、Enterキーを押します。
Defaulting to user installation because normal site-packages is not writeable Collecting bot-studio Downloading bot_studio-1.1.4.tar.gz (17.7 MB) |████████████████████████████████| 17.7 MB 157 kB/s Requirement already satisfied: requests in c:\users\user_\appdata\roaming\python\python38\site-packages (from bot-studio) (2.25.1) Collecting tqdm Downloading tqdm-4.61.1-py2.py3-none-any.whl (75 kB) |████████████████████████████████| 75 kB 5.5 MB/s Requirement already satisfied: certifi>=2017.4.17 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests->bot-studio) (2021.5.30) Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests->bot-studio) (1.26.5) Requirement already satisfied: idna<3,>=2.5 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests->bot-studio) (2.10) Requirement already satisfied: chardet<5,>=3.0.2 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests->bot-studio) (4.0.0) Using legacy setup.py install for bot-studio, since package 'wheel' is not installed. Installing collected packages: tqdm, bot-studio Running setup.py install for bot-studio ... done Successfully installed bot-studio-1.1.4 tqdm-4.61.1
Enterキーを押すと、インストールが開始され、上記のように「Successfully installed」と表示されます。これが表示されれば、bot-studioが正常にインストールされたことになります。
■youtube-search-scraperをインストールする
youtube-search-scraperをインストールを行いますが、今回はpipを経由してインストールを行うので、まずWindowsのコマンドプロンプトを起動します。
pip install youtube-search-scraper
起動後、上記のコマンドを入力し、Enterキーを押します。
なお、今回は、pythonランチャーを使用しており、Python Version 3.8.5にインストールを行うために、pipを使う場合にはコマンドでの切り替えを行います。
py -3.8 -m pip install youtube-search-scraper
切り替えるために、上記のコマンドを入力し、Enterキーを押します。
Defaulting to user installation because normal site-packages is not writeable Collecting youtube-search-scraper Downloading youtube-search-scraper-1.0.0.tar.gz (2.4 kB) Requirement already satisfied: requests in c:\users\user_\appdata\roaming\python\python38\site-packages (from youtube-search-scraper) (2.25.1) Requirement already satisfied: bot-studio in c:\users\user_\appdata\roaming\python\python38\site-packages (from youtube-search-scraper) (1.1.4) Requirement already satisfied: certifi>=2017.4.17 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests->youtube-search-scraper) (2021.5.30) Requirement already satisfied: idna<3,>=2.5 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests->youtube-search-scraper) (2.10) Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests->youtube-search-scraper) (1.26.5) Requirement already satisfied: chardet<5,>=3.0.2 in c:\users\user_\appdata\roaming\python\python38\site-packages (from requests->youtube-search-scraper) (4.0.0) Requirement already satisfied: tqdm in c:\users\user_\appdata\roaming\python\python38\site-packages (from bot-studio->youtube-search-scraper) (4.61.1) Using legacy setup.py install for youtube-search-scraper, since package 'wheel' is not installed. Installing collected packages: youtube-search-scraper Running setup.py install for youtube-search-scraper ... done Successfully installed youtube-search-scraper-1.0.0
Enterキーを押すと、インストールが開始され、上記のように「Successfully installed」と表示されます。これが表示されれば、youtube-search-scraperが正常にインストールされたことになります。
■YouTubeで検索を行い検索結果を自動的に取得する
インストール後、YouTubeで検索を行い検索結果を自動的に取得するスクリプトを書いていきます。
■コード
from youtube_search_scraper import * youtube.search(keyword='大阪') response=youtube.search_results() data=response['body'] for item in data: print(item['title']) print(item['link'])
今回は、YouTubeで「大阪」というキーワードで検索を行いますので、youtube.search()関数の括弧内に「keyword=’大阪’」と指定し、キーワードを渡します。渡されたキーワードで検索が行われ、結果結果の情報がresponse変数に格納されます。
格納後、結果結果の情報の「body」のみを、data変数に格納。その後、for文を使用し、data変数から「タイトル(title)」と「リンク(link)」の情報を全てprint()関数で出力してみます。
■実行
このスクリプトを「youtubesearchscraper.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、「Windows セキュリティの重大な警告」というウインドウが表示されます。ウインドウ内には「このアプリの機能のいくつかがWindowsファイアウォールでブロックされています」と表示されています。
名前が「datakund.exe」となっており、このexeファイルのいくつかがブロックされていますので、今回はネットワーク上の通信を「パブリックネットワーク」に選択し「アクセスを許可する」ボタンをクリックします。
クリックすると、Webブラウザ(今回GoogleChrome)が自動的に起動します。起動後、Youtubeにアクセスを開始し、Youtubeの検索バーで自動的にキーワードが入力され、検索結果が表示されます。
表示後、コマンドプロンプトの方では、検索結果の情報が取得され出力されます。今回指定した検索結果のタイトルとリンクも出力されたことが確認できました。
コメント