スポンサーリンク

【コピペOK】PythonでYAHOO!JAPAN検索する方法【BeautifulSoup】

★悩み★
・PythonからYAHOO!JAPAN検索ってできるんだろうか。
・YAHOO!JAPANの検索結果からタイトルとURLを抽出できないかな。
・BeautifulSoupを利用したYAHOO!JAPAN検索の方法が分からないな。


こういった「悩み」に答えます。

★本記事の内容★
BeautifulSoupを用いてPythonでYAHOO!JAPAN検索する方法をご紹介


これからご紹介する「BeautifulSoupを用いてPythonでYAHOO!JAPAN検索する方法」を実践したことで、筆者は15分以内でPythonからYAHOO!JAPAN検索できました。

記事の前半では「BeautifulSoupをインストールする方法」を解説しつつ、記事の後半では「BeautifulSoupを用いてPythonでYAHOO!JAPAN検索する方法」をご紹介します。

この記事を読み終えることで、「BeautifulSoupを用いてPythonでYAHOO!JAPAN検索する方法」を把握した状態になります。

ちなみにPythonでGoogle検索する方法を知りたい方は、以下をご覧ください。

BeautifulSoupを用いてPythonでYAHOO!JAPAN検索する方法

BeautifulSoupを用いてPythonでYAHOO!JAPAN検索する方法をご紹介します。

★BeautifulSoupを用いてPythonでYAHOO!JAPAN検索するまでの流れ★
ステップ1:Pythonのインストール
ステップ2:BeautifulSoupのインストール
ステップ3:PythonでYAHOO!JAPAN検索するプログラムの実装
ステップ4:実装したPythonでYAHOO!JAPAN検索するプログラムの動作確認


上記の流れで「BeautifulSoupを用いてPythonでYAHOO!JAPANする方法」をご紹介していきます。

上記の各ステップは、以下の環境で動作確認済みです。
動作確認済み環境:CentOS Linux release 7.8.2003 (Core)


以降で、各ステップに関してご紹介します。

ステップ1:Pythonのインストール

Pythonのインストール方法に関してご紹介します。

Pythonのインストール方法は、以下の記事をご覧ください。

既にPythonをインストールされている方は、本ステップを省略してください。


以上で、「ステップ1:Pythonのインストール」は完了です。

ステップ2:BeautifulSoupのインストール【YAHOO!JAPAN検索に必須】

PythonでYAHOO!JAPAN検索するために必要な「BeautifulSoup」などのライブラリーをインストールしましょう。

BeautifulSoupのインストール方法は、以下の記事「ステップ2:BeautifulSoupのインストール【Google検索に必須】」をご覧ください。


以上で、「ステップ2:BeautifulSoupのインストール」は完了です。

ステップ3:PythonでYAHOO!JAPAN検索するプログラムの実装

PythonでYAHOO!JAPAN検索するプログラムの実装に関してご紹介します。

以下のプログラムをyahoo-search-beautifulsoup.pyというファイル名で保存しましょう。

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)


以上で、「ステップ3:PythonでYAHOO!JAPAN検索するプログラムの実装」は完了です。

ステップ4:実装したPythonでYAHOO!JAPAN検索するプログラムの動作確認

実装したPythonでYAHOO!JAPAN検索するプログラムの動作確認に関してご紹介します。

以下のコマンドを実行し、PythonでYAHOO!JAPAN検索するプログラムの動作を確認しましょう。

$ 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']]


上記のようにPythonでYAHOO!JAPAN検索し、YAHOO!JAPAN検索した結果を抽出することができます。

yahoo-search-beautifulsoup.pyを短時間で大量に実行するとYAHOO!JAPANから規制を受ける(YAHOO!JAPAN検索ができなくなる)ので要注意です。

以上の4ステップで、PythonでYAHOO!JAPAN検索をすることができました。

【まとめ】PythonでYAHOO!JAPAN検索する方法【BeautifulSoup】

今回の記事を通して、「BeautifulSoupを用いてPythonでYAHOO!JAPAN検索する方法」をご紹介することで、以下の悩みを解消しました。

★悩み★
・PythonからYAHOO!JAPAN検索ってできるんだろうか。
・YAHOO!JAPANの検索結果からタイトルとURLを抽出できないかな。
・BeautifulSoupを利用したYAHOO!JAPAN検索の方法が分からないな。


PythonでYAHOO!JAPAN検索する方法は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

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