★悩み★
・YAHOO!JAPAN検索の結果からタイトルとURLをスクレイピングできる?
・YAHOO!JAPAN検索の結果をスクレイピングする上で注意することは?
・YAHOO!JAPAN検索の結果をPythonでスクレイピングできないかな?
こういった「悩み」に答えます。
★本記事の内容★
① スクレイピング(Scraping)とは?
② スクレイピング(Scraping)する理由
③ Yahooにおけるスクレイピングの規定(ルール)
④ PythonでYahoo検索の結果をスクレイピングするための準備
⑤ PythonでYahoo検索の結果をスクレイピングする手順
これからご紹介する「【最短5分】Yahoo検索の結果をスクレイピング(Python)する方法」を実践したことで、筆者は5分以内でPythonでYAHOO!JAPAN検索の結果をスクレイピングできました。
記事の前半では「スクレイピング とは何か?」や「スクレイピングする上で注意すること」を紹介します。
記事の後半では「PythonでYahoo検索の結果をスクレイピングする手順」を紹介します。
この記事を読み終えることで、「スクレイピングとは何か?」を把握できるだけでなく、「PythonでYAHOO!JAPAN検索の結果をスクレイピングできる」状態になります。
ちなみにPythonでGoogle検索の結果をスクレイピングする方法を知りたい方は、以下をご覧ください。
スクレイピング(Scraping)とは?
「スクレイピング(Scraping)とは?」に関して解説します。
スクレイピング(Scraping)の定義に関して説明しますね。
スクレイピングの定義は、以下となります。
★スクレイピングとは★
入手したひとまとまりのデータを解析し、不要な部分を削ったり、必要な部分だけを取り出したり、一部を置き換えたり、並べ替えたりして、目的に適う形式に整形することをスクレイピングという。
スクレイピングの種類として、「Webスクレイピング」がある。
Webスクレイピングとは、WebページやWeb上で公開されているデータについて、ソフトウェアで処理しやすい形に整形したり必要な部分を抽出することである。
引用元:スクレイピング(scraping)とは(IT用語辞典)
本記事の後半からは、「YAHOO!JAPAN検索の結果をPythonでWebスクレイピングする方法」を詳しく解説してきます。
ちなみに、Webスクレイピングを習得することで、以下のようなことができます。
★Webスクレイピングでできること★
・あるWebサイトの内容が更新された場合、LINEなどに通知
→サイトの更新を監視するプログラム(ツール)を作成する手順
・あるWebサイトの検索順位を定期的に確認
→サイトの更新を監視するプログラム(ツール)を作成する手順
以上が、「スクレイピング(Scraping)とは?」となります。
スクレイピング(Scraping)する理由
「スクレイピング(Scraping)する理由」に関して説明します。
Webスクレイピングを検討しなければならない場面に関して解説しますね。
Webスクレイピングをする理由としては、以下が挙げられます。
★Webスクレイピングをする理由★
・既存のWeb APIやRSSがあるが、欲しい情報を取得できない
・そもそも、Web APIやRSSが存在しない
「欲しい情報があるけど、既存のWeb APIがない」や「欲しい情報があるけど、既存のWeb APIでは取得できない」場合、Webスクレイピングの使用を検討しましょう。
以上が、「スクレイピング(Scraping)する理由」となります。
Yahooにおけるスクレイピングの規定(ルール)
「Yahooにおけるスクレイピングの規定」に関して解説します。
「Yahooに対してスクレイピングを実施していいのか?」に関して説明しますね。
YAHOO!JAPANの検索結果に対して、公式(YAHOO!JAPAN運営元)がスクレイピングを承認しているかに関しては、以下の「robots.txt」で確認できます。
参照:YAHOO!JAPANの検索結果に対するrobots.txtのURL
robots.txtを確認したところ、Yahooにおけるスクレイピングの規定(ルール)は、以下だと考えられます。
★YAHOO!JAPANの検索結果に対するスクレイピング可否について★
2022年4月11日時点のrobots.txtでは、「/search/*」や「/search/」に対して、許可(Allow)または否認(Disallow)を記載していない。
よって、スクレイピングしても良いかに関しては、「どちらとも言えない」となります。
以上が、「Yahooにおけるスクレイピングの規定(ルール)」となります。
PythonでYahoo検索の結果をスクレイピングするための準備
「PythonでYahoo検索の結果をスクレイピングするための準備」に関してご紹介します。
★PythonでYahoo検索の結果をスクレイピングするための準備の流れ★
手順1:Pythonをインストール
手順2:PythonのスクレイピングライブラリBeautifulSoupをインストール
上記手順を実施することで、「PythonでYahoo検索の結果をスクレイピングするための準備」ができます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2020年12月27日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「PythonでYahoo検索の結果をスクレイピングするための準備の流れ」の各手順に関してご説明します。
手順1:Pythonをインストール
「手順1:Pythonをインストール」に関して解説します。
PythonでYahoo検索の結果をスクレイピングするためにも、Pythonをインストールしましょう。
以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。
>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】
>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】
>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照
>> 【環境構築】インストーラーでMacOSにPythonをインストール
既にPythonをインストールされている方は、本手順を省略してください。
以上で、「手順1:Pythonをインストール」は完了です。
手順2:PythonのスクレイピングライブラリBeautifulSoupをインストール
「手順2:PythonのスクレイピングライブラリBeautifulSoupをインストール」に関して説明します。
今回は、Pythonのスクレイピングライブラリ「BeautifulSoup」を使って、Yahooの検索結果をスクレイピングします。
BeautifulSoupのインストール方法に関しては、以下の記事をご覧ください。
以上で、「手順2:PythonのスクレイピングライブラリBeautifulSoupをインストール」は完了です。
上記の流れで、PythonでYahoo検索の結果をスクレイピングするための準備ができました。
PythonでYahoo検索の結果をスクレイピングする手順
「PythonでYahoo検索の結果をスクレイピングする手順」に関してご紹介します。
★PythonでYahoo検索の結果をスクレイピングするまでの流れ★
手順1:「PythonでYahoo検索結果をスクレイピングする」プログラムを作成
手順2:PythonでYahoo検索結果をスクレイピングするプログラムの実行
上記の流れで「PythonでYahoo検索の結果をスクレイピング」できます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2020年12月27日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「PythonでYahoo検索の結果をスクレイピングするまでの流れ」の各手順に関してご説明します。
手順1:「PythonでYahoo検索結果をスクレイピングする」プログラムを作成
「手順1:「PythonでYahoo検索結果をスクレイピングする」プログラムを作成」に関して説明します。
「BeautifulSoup」を使って、PythonでYahoo検索結果をスクレイピングするプログラムを作成しましょう。
「PythonでYahoo検索結果をスクレイピングする」プログラムは、以下となります。
import lxml.html
import requests
# YAHOO!JAPAN検索の結果から100件取得する関数
def search_keyword_yahoo_100(keyword):
searched_list = []
b_list = [0, 11, 22, 33, 44, 55, 66, 77, 88]
for b in b_list:
ret_list = search_keyword_yahoo(keyword, b)
searched_list.extend(ret_list)
return searched_list
# YAHOO!JAPAN検索をする関数
def search_keyword_yahoo(keyword, start_num):
searched_list = []
rank_num = 1
url = 'http://search.yahoo.co.jp/search?p=' + keyword + "&ei=UTF-8"
if start_num != 0:
url += "b=" + str(start_num)
rank_num = start_num
req = requests.get(url)
html = req.text
dom = lxml.html.fromstring(html)
a_list = dom.xpath("//div[@id='web']//li/a")
for i, j in enumerate(a_list):
result = str(i + 1) + '. ['
result += j.text_content() + ']('
result += j.attrib['href'] + ')'
page_data = []
page_data.append(rank_num)
page_data.append(j.text_content())
page_data.append(j.attrib['href'] )
searched_list.append(page_data)
rank_num += 1
req.close()
return searched_list
# main
if __name__ == '__main__':
ret = search_keyword_yahoo_100("python YAHOO!JAPAN検索")
print(ret)
上記のプログラムを「yahoo-search-beautifulsoup.py」というファイル名で保存しましょう。
以上で、「手順1:「PythonでYahoo検索結果をスクレイピングする」プログラムを作成」は完了です。
手順2:PythonでYahoo検索結果をスクレイピングするプログラムの実行
「手順2:PythonでYahoo検索結果をスクレイピングするプログラムの実行」に関して説明します。
Pythonで作成した「Yahoo検索結果をスクレイピングするプログラム」の動作を確認しましょう。
Pythonで作成した「Yahoo検索結果をスクレイピングするプログラム」プログラムの動作を確認するために、以下のコマンドを実行してください。
$ python3 yahoo-search-beautifulsoup.py
[[1, 'Yahoo!JAPANの検索結果から欲しい情報だけ抽出するPython ...', 'https://mamerium.com/python-make-url-list/'], [2, 'Selenium + Python でYahooのログインや検索・メールの操作を ...', 'https://tech-blog.s-yoshiki.com/entry/166'], [3, 'PythonのRequestsを使って検索結果を取得する | イチゾーのブログ', 'http://ichizo.biz/2016/12/22/python-search.html'], [4, 'Python版近傍検索NGT(ngtpy)の使い方 - Yahoo! JAPAN Tech Blog', 'https://techblog.yahoo.co.jp/entry/2020070630010862/'], [5, 'Yahoo検索のスクレイピングで広告だけが取得できない - スタック ...', 'https://ja.stackoverflow.com/questions/62760/yahoo%E6%A4%9C%E7%B4%A2%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%A7%E5%BA%83%E5%91%8A%E3%81%A0%E3%81%91%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84'], [6, 'PythonでYahoo APIを使ってみる – BTY備忘録 - bty.saura.ne.jp', 'https://bty.sakura.ne.jp/wp/archives/787'], [7, 'ヤフーリアルタイム検索 selenium + python - Qiita', 'https://qiita.com/zanjibar/items/b8f5ba2fa2b45a50b844'], [8, '【Python】Seleniumを使って標準入力でヤフー検索をして検索結果 ...', 'https://a-zumi.net/python-stdin-search-screenshot/'], [9, '【Python】Python3でYahoo Shopping APIを使って商品検索をする ...', 'https://a-zumi.net/python3-yahoo-shopping-api/'], [10, '【python】Yahoo Web APIでバーコード情報(JAN)から商品名を ...', 'http://motojapan.hateblo.jp/entry/2018/03/08/105559'], [11, 'Yahoo!JAPANの検索結果から欲しい情報だけ抽出するPython ...', 'https://mamerium.com/python-make-url-list/'], [12, 'Selenium + Python でYahooのログインや検索・メールの操作を ...', 'https://tech-blog.s-yoshiki.com/entry/166'], [13, 'PythonのRequestsを使って検索結果を取得する | イチゾーのブログ', 'http://ichizo.biz/2016/12/22/python-search.html'], [14, 'Python版近傍検索NGT(ngtpy)の使い方 - Yahoo! JAPAN Tech Blog', 'https://techblog.yahoo.co.jp/entry/2020070630010862/'], [15, 'Yahoo検索のスクレイピングで広告だけが取得できない - スタック ...', 'https://ja.stackoverflow.com/questions/62760/yahoo%E6%A4%9C%E7%B4%A2%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%A7%E5%BA%83%E5%91%8A%E3%81%A0%E3%81%91%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84'], [16, 'PythonでYahoo APIを使ってみる – BTY備忘録 - bty.saura.ne.jp', 'https://bty.sakura.ne.jp/wp/archives/787'], [17, 'ヤフーリアルタイム検索 selenium + python - Qiita', 'https://qiita.com/zanjibar/items/b8f5ba2fa2b45a50b844'], [18, '【Python】Seleniumを使って標準入力でヤフー検索をして検索結果 ...', 'https://a-zumi.net/python-stdin-search-screenshot/'], [19, '【Python】Python3でYahoo Shopping APIを使って商品検索をする ...', 'https://a-zumi.net/python3-yahoo-shopping-api/'], [20, '【python】Yahoo Web APIでバーコード情報(JAN)から商品名を ...', 'http://motojapan.hateblo.jp/entry/2018/03/08/105559'], [22, 'Yahoo!JAPANの検索結果から欲しい情報だけ抽出するPython ...', 'https://mamerium.com/python-make-url-list/'], [23, 'Selenium + Python でYahooのログインや検索・メールの操作を ...', 'https://tech-blog.s-yoshiki.com/entry/166'], [24, 'PythonのRequestsを使って検索結果を取得する | イチゾーのブログ', 'http://ichizo.biz/2016/12/22/python-search.html'], [25, 'Python版近傍検索NGT(ngtpy)の使い方 - Yahoo! JAPAN Tech Blog', 'https://techblog.yahoo.co.jp/entry/2020070630010862/'], [26, 'Yahoo検索のスクレイピングで広告だけが取得できない - スタック ...', 'https://ja.stackoverflow.com/questions/62760/yahoo%E6%A4%9C%E7%B4%A2%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%A7%E5%BA%83%E5%91%8A%E3%81%A0%E3%81%91%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84'], [27, 'PythonでYahoo APIを使ってみる – BTY備忘録 - bty.saura.ne.jp', 'https://bty.sakura.ne.jp/wp/archives/787'], [28, 'ヤフーリアルタイム検索 selenium + python - Qiita', 'https://qiita.com/zanjibar/items/b8f5ba2fa2b45a50b844'], [29, '【Python】Seleniumを使って標準入力でヤフー検索をして検索結果 ...', 'https://a-zumi.net/python-stdin-search-screenshot/'], [30, '【Python】Python3でYahoo Shopping APIを使って商品検索をする ...', 'https://a-zumi.net/python3-yahoo-shopping-api/'], [31, '【python】Yahoo Web APIでバーコード情報(JAN)から商品名を ...', 'http://motojapan.hateblo.jp/entry/2018/03/08/105559'], [33, 'Yahoo!JAPANの検索結果から欲しい情報だけ抽出するPython ...', 'https://mamerium.com/python-make-url-list/'], [34, 'Selenium + Python でYahooのログインや検索・メールの操作を ...', 'https://tech-blog.s-yoshiki.com/entry/166'], [35, 'PythonのRequestsを使って検索結果を取得する | イチゾーのブログ', 'http://ichizo.biz/2016/12/22/python-search.html'], [36, 'Python版近傍検索NGT(ngtpy)の使い方 - Yahoo! JAPAN Tech Blog', 'https://techblog.yahoo.co.jp/entry/2020070630010862/'], [37, 'Yahoo検索のスクレイピングで広告だけが取得できない - スタック ...', 'https://ja.stackoverflow.com/questions/62760/yahoo%E6%A4%9C%E7%B4%A2%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%A7%E5%BA%83%E5%91%8A%E3%81%A0%E3%81%91%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84'], [38, 'PythonでYahoo APIを使ってみる – BTY備忘録 - bty.saura.ne.jp', 'https://bty.sakura.ne.jp/wp/archives/787'], [39, 'ヤフーリアルタイム検索 selenium + python - Qiita', 'https://qiita.com/zanjibar/items/b8f5ba2fa2b45a50b844'], [40, '【Python】Seleniumを使って標準入力でヤフー検索をして検索結果 ...', 'https://a-zumi.net/python-stdin-search-screenshot/'], [41, '【Python】Python3でYahoo Shopping APIを使って商品検索をする ...', 'https://a-zumi.net/python3-yahoo-shopping-api/'], [42, '【python】Yahoo Web APIでバーコード情報(JAN)から商品名を ...', 'http://motojapan.hateblo.jp/entry/2018/03/08/105559'], [44, 'Yahoo!JAPANの検索結果から欲しい情報だけ抽出するPython ...', 'https://mamerium.com/python-make-url-list/'], [45, 'Selenium + Python でYahooのログインや検索・メールの操作を ...', 'https://tech-blog.s-yoshiki.com/entry/166'], [46, 'PythonのRequestsを使って検索結果を取得する | イチゾーのブログ', 'http://ichizo.biz/2016/12/22/python-search.html'], [47, 'Python版近傍検索NGT(ngtpy)の使い方 - Yahoo! JAPAN Tech Blog', 'https://techblog.yahoo.co.jp/entry/2020070630010862/'], [48, 'Yahoo検索のスクレイピングで広告だけが取得できない - スタック ...', 'https://ja.stackoverflow.com/questions/62760/yahoo%E6%A4%9C%E7%B4%A2%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%A7%E5%BA%83%E5%91%8A%E3%81%A0%E3%81%91%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84'], [49, 'PythonでYahoo APIを使ってみる – BTY備忘録 - bty.saura.ne.jp', 'https://bty.sakura.ne.jp/wp/archives/787'], [50, 'ヤフーリアルタイム検索 selenium + python - Qiita', 'https://qiita.com/zanjibar/items/b8f5ba2fa2b45a50b844'], [51, '【Python】Seleniumを使って標準入力でヤフー検索をして検索結果 ...', 'https://a-zumi.net/python-stdin-search-screenshot/'], [52, '【Python】Python3でYahoo Shopping APIを使って商品検索をする ...', 'https://a-zumi.net/python3-yahoo-shopping-api/'], [53, '【python】Yahoo Web APIでバーコード情報(JAN)から商品名を ...', 'http://motojapan.hateblo.jp/entry/2018/03/08/105559'], [55, 'Yahoo!JAPANの検索結果から欲しい情報だけ抽出するPython ...', 'https://mamerium.com/python-make-url-list/'], [56, 'Selenium + Python でYahooのログインや検索・メールの操作を ...', 'https://tech-blog.s-yoshiki.com/entry/166'], [57, 'PythonのRequestsを使って検索結果を取得する | イチゾーのブログ', 'http://ichizo.biz/2016/12/22/python-search.html'], [58, 'Python版近傍検索NGT(ngtpy)の使い方 - Yahoo! JAPAN Tech Blog', 'https://techblog.yahoo.co.jp/entry/2020070630010862/'], [59, 'Yahoo検索のスクレイピングで広告だけが取得できない - スタック ...', 'https://ja.stackoverflow.com/questions/62760/yahoo%E6%A4%9C%E7%B4%A2%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%A7%E5%BA%83%E5%91%8A%E3%81%A0%E3%81%91%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84'], [60, 'PythonでYahoo APIを使ってみる – BTY備忘録 - bty.saura.ne.jp', 'https://bty.sakura.ne.jp/wp/archives/787'], [61, 'ヤフーリアルタイム検索 selenium + python - Qiita', 'https://qiita.com/zanjibar/items/b8f5ba2fa2b45a50b844'], [62, '【Python】Seleniumを使って標準入力でヤフー検索をして検索結果 ...', 'https://a-zumi.net/python-stdin-search-screenshot/'], [63, '【Python】Python3でYahoo Shopping APIを使って商品検索をする ...', 'https://a-zumi.net/python3-yahoo-shopping-api/'], [64, '【python】Yahoo Web APIでバーコード情報(JAN)から商品名を ...', 'http://motojapan.hateblo.jp/entry/2018/03/08/105559'], [66, 'Yahoo!JAPANの検索結果から欲しい情報だけ抽出するPython ...', 'https://mamerium.com/python-make-url-list/'], [67, 'Selenium + Python でYahooのログインや検索・メールの操作を ...', 'https://tech-blog.s-yoshiki.com/entry/166'], [68, 'PythonのRequestsを使って検索結果を取得する | イチゾーのブログ', 'http://ichizo.biz/2016/12/22/python-search.html'], [69, 'Python版近傍検索NGT(ngtpy)の使い方 - Yahoo! JAPAN Tech Blog', 'https://techblog.yahoo.co.jp/entry/2020070630010862/'], [70, 'Yahoo検索のスクレイピングで広告だけが取得できない - スタック ...', 'https://ja.stackoverflow.com/questions/62760/yahoo%E6%A4%9C%E7%B4%A2%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%A7%E5%BA%83%E5%91%8A%E3%81%A0%E3%81%91%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84'], [71, 'PythonでYahoo APIを使ってみる – BTY備忘録 - bty.saura.ne.jp', 'https://bty.sakura.ne.jp/wp/archives/787'], [72, 'ヤフーリアルタイム検索 selenium + python - Qiita', 'https://qiita.com/zanjibar/items/b8f5ba2fa2b45a50b844'], [73, '【Python】Seleniumを使って標準入力でヤフー検索をして検索結果 ...', 'https://a-zumi.net/python-stdin-search-screenshot/'], [74, '【Python】Python3でYahoo Shopping APIを使って商品検索をする ...', 'https://a-zumi.net/python3-yahoo-shopping-api/'], [75, '【python】Yahoo Web APIでバーコード情報(JAN)から商品名を ...', 'http://motojapan.hateblo.jp/entry/2018/03/08/105559'], [77, 'Yahoo!JAPANの検索結果から欲しい情報だけ抽出するPython ...', 'https://mamerium.com/python-make-url-list/'], [78, 'Selenium + Python でYahooのログインや検索・メールの操作を ...', 'https://tech-blog.s-yoshiki.com/entry/166'], [79, 'PythonのRequestsを使って検索結果を取得する | イチゾーのブログ', 'http://ichizo.biz/2016/12/22/python-search.html'], [80, 'Python版近傍検索NGT(ngtpy)の使い方 - Yahoo! JAPAN Tech Blog', 'https://techblog.yahoo.co.jp/entry/2020070630010862/'], [81, 'Yahoo検索のスクレイピングで広告だけが取得できない - スタック ...', 'https://ja.stackoverflow.com/questions/62760/yahoo%E6%A4%9C%E7%B4%A2%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%A7%E5%BA%83%E5%91%8A%E3%81%A0%E3%81%91%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84'], [82, 'PythonでYahoo APIを使ってみる – BTY備忘録 - bty.saura.ne.jp', 'https://bty.sakura.ne.jp/wp/archives/787'], [83, 'ヤフーリアルタイム検索 selenium + python - Qiita', 'https://qiita.com/zanjibar/items/b8f5ba2fa2b45a50b844'], [84, '【Python】Seleniumを使って標準入力でヤフー検索をして検索結果 ...', 'https://a-zumi.net/python-stdin-search-screenshot/'], [85, '【Python】Python3でYahoo Shopping APIを使って商品検索をする ...', 'https://a-zumi.net/python3-yahoo-shopping-api/'], [86, '【python】Yahoo Web APIでバーコード情報(JAN)から商品名を ...', 'http://motojapan.hateblo.jp/entry/2018/03/08/105559'], [88, 'Yahoo!JAPANの検索結果から欲しい情報だけ抽出するPython ...', 'https://mamerium.com/python-make-url-list/'], [89, 'Selenium + Python でYahooのログインや検索・メールの操作を ...', 'https://tech-blog.s-yoshiki.com/entry/166'], [90, 'PythonのRequestsを使って検索結果を取得する | イチゾーのブログ', 'http://ichizo.biz/2016/12/22/python-search.html'], [91, 'Python版近傍検索NGT(ngtpy)の使い方 - Yahoo! JAPAN Tech Blog', 'https://techblog.yahoo.co.jp/entry/2020070630010862/'], [92, 'Yahoo検索のスクレイピングで広告だけが取得できない - スタック ...', 'https://ja.stackoverflow.com/questions/62760/yahoo%E6%A4%9C%E7%B4%A2%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%81%A7%E5%BA%83%E5%91%8A%E3%81%A0%E3%81%91%E3%81%8C%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84'], [93, 'PythonでYahoo APIを使ってみる – BTY備忘録 - bty.saura.ne.jp', 'https://bty.sakura.ne.jp/wp/archives/787'], [94, 'ヤフーリアルタイム検索 selenium + python - Qiita', 'https://qiita.com/zanjibar/items/b8f5ba2fa2b45a50b844'], [95, '【Python】Seleniumを使って標準入力でヤフー検索をして検索結果 ...', 'https://a-zumi.net/python-stdin-search-screenshot/'], [96, '【Python】Python3でYahoo Shopping APIを使って商品検索をする ...', 'https://a-zumi.net/python3-yahoo-shopping-api/'], [97, '【python】Yahoo Web APIでバーコード情報(JAN)から商品名を ...', 'http://motojapan.hateblo.jp/entry/2018/03/08/105559']]
コマンド実行後、「YAHOO!JAPAN検索した結果が表示された」場合、正常に「PythonでYAHOO!JAPAN検索の結果をスクレイピングできた」と判断できます。
yahoo-search-beautifulsoup.pyを短時間で大量に実行するとYAHOO!JAPANから規制を受ける(YAHOO!JAPAN検索ができなくなる)ので要注意です。
以上で、「手順2:PythonでYahoo検索結果をスクレイピングするプログラムの実行」は完了です。
上記の流れで、PythonでYahoo検索結果をスクレイピングできました。
【まとめ】Yahoo検索の結果をスクレイピング(Python)する方法【最短5分】
いかがでしたでしょうか?「スクレイピングとは何か?」、「Yahooをスクレイピングする場合に注意するべき点」、「BeautifulSoupライブラリを用いてYAHOO!JAPANの検索結果をスクレイピングする流れ」を解説し、以下の悩みを解決しました。
★悩み★
・YAHOO!JAPAN検索の結果からタイトルとURLをスクレイピングできる?
・YAHOO!JAPAN検索の結果をスクレイピングする上で注意することは?
・YAHOO!JAPAN検索の結果をPythonでスクレイピングできないかな?
「BeautifulSoupライブラリ」を利用するだけで、「Yahooを簡単にスクレイピング」ができます。ぜひあなたも本記事を参考に「PythonでYahoo検索の結果をスクレイピング」をしてみてください。