
今日のデータ駆動型の世界では、手動でデータを収集する従来の方法は時代遅れです。 すべての机にインターネット接続を備えたコンピュータにより、Web は巨大なデータ ソースになりました。 したがって、より効率的で時間を節約できる最新のデータ収集方法は、Web スクレイピングです。 また、Web スクレイピングに関して言えば、Python には Beautiful Soup というツールがあります。 この投稿では、Web スクレイピングを開始するための Beautiful Soup のインストール手順について説明します。
Beautiful Soup をインストールして使用する前に、なぜそれを使用する必要があるのかを調べてみましょう。
美しいスープとは?
「COVID が人々の健康に与える影響」について調べていて、関連データを含む Web ページをいくつか見つけたとしましょう。 しかし、ワンクリックでダウンロードしてデータを借りることができない場合はどうでしょうか? 美しいスープの出番です。
Beautiful Soup は、ターゲット サイトからデータを引き出すための Python ライブラリのインデックスの 1 つです。 HTML または XML ページからデータを取得する方が快適です。
Leonard Richardson は、Web をスクレイピングするための Beautiful Soup のアイデアを 2004 年に明らかにしました。しかし、プロジェクトへの彼の貢献は今日まで続いています。 彼は Twitter アカウントで Beautiful Soup のすべての新しいリリースを誇らしげに更新しています。
Web スクレイピング用の Beautiful Soup は Python 3.8 を使用して開発されましたが、Python 3 と Python 2.4 の両方でも完全に動作します。
多くの場合、Web サイトはキャプチャ保護を使用して、AI ツールからデータを救出します。 この場合、Beautiful Soup の「user-agent」ヘッダーを少し変更するか、Captcha-solving API を使用することで、信頼できるブラウザーを模倣し、検出ツールをだますことができます。
ただし、Beautiful Soup を探索する時間がない場合や、スクレイピングを効率的かつ簡単に行いたい場合は、この Web スクレイピング API をチェックすることをお見逃しなく。URL を指定してデータを取得するだけです。あなたの手。
すでにプログラマーである場合、スクレイピングに Beautiful Soup を使用することは難しくありません。これは、Web ページをナビゲートし、条件付き解析に基づいて目的のデータを抽出する構文が単純であるためです。 同時に、初心者にも優しいです。
Beautiful Soup は高度なスクレイピング用ではありませんが、マークアップ言語で記述されたファイルからデータをスクレイピングするのに最適です。
明確で詳細なドキュメントは、Beautiful Soup が袋に入れているもう 1 つのブラウニー ポイントです。
美しいスープをあなたのマシンに入れる簡単な方法を見つけましょう。
Webスクレイピング用の美しいスープをインストールするには?
Pip – 2008 年に開発された楽な Python パッケージ マネージャーは、現在、開発者の間で Python ライブラリまたは依存関係をインストールするための標準ツールです。
Pip は、最近の Python バージョンのインストールにデフォルトで付属しています。 したがって、システムに最近の Python バージョンがインストールされていれば、問題ありません。
コマンド プロンプトを開き、次の pip コマンドを入力して美しいスープをすぐにインストールします。
pip install beautifulsoup4
次のスクリーンショットのようなものがディスプレイに表示されます。
一般的なエラーを回避するために、PIP インストーラーを最新バージョンに更新したことを確認してください。
pip インストーラーを最新バージョンに更新するコマンドは次のとおりです。
pip install --upgrade pip
この投稿では、地面の半分をカバーすることに成功しました。
これで、マシンに Beautiful Soup がインストールされたので、それを Web スクレイピングに使用する方法について詳しく見ていきましょう。
Beautiful Soup を Web スクレイピング用にインポートして使用する方法
Python IDE で次のコマンドを入力して、美しい Soup を現在の Python スクリプトにインポートします。
from bs4 import BeautifulSoup
これで、スクレイピングに使用する Python ファイルに Beautiful Soup が含まれました。
コード例を見て、美しいスープで目的のデータを抽出する方法を学びましょう。
美しいスープに、ソース Web サイトで特定の HTML タグを探し、それらのタグに存在するデータをスクレイピングするように指示できます。
この記事では、さまざまな企業のリアルタイムの株価を更新する marketwatch.com を使用します。 Beautiful Soup ライブラリに慣れるために、この Web サイトからいくつかのデータを引き出してみましょう。
HTTP リクエストを受信して応答できるようにする「requests」パッケージと、その URL から Web ページをロードする「urllib」をインポートします。
from urllib.request import urlopen import requests
後で簡単にアクセスできるように、Web ページのリンクを変数に保存します。
url="https://www.marketwatch.com/investing/stock/amzn"
次に、「urllib」ライブラリの「urlopen」メソッドを使用して、HTML ページを変数に格納します。 URL を「urlopen」関数に渡し、結果を変数に保存します。
page = urlopen(url)
Beautiful Soup オブジェクトを作成し、「html.parser」を使用して目的の Web ページを解析します。
soup_obj = BeautifulSoup(page, 'html.parser')
これで、ターゲット Web ページの HTML スクリプト全体が「soup_obj」変数に格納されます。
先に進む前に、ターゲット ページのソース コードを見て、HTML スクリプトとタグについて詳しく理解しましょう。
Web ページの任意の場所をマウスで右クリックします。 次に、以下に示すように、検査オプションが表示されます。
inspect をクリックしてソースコードを表示します。
上記のソース コードでは、タグ、クラス、および Web サイトのインターフェイスに表示されるすべての要素に関するより具体的な情報を見つけることができます。
美しいスープの「find」メソッドを使用すると、要求された HTML タグを検索してデータを取得できます。 これを行うには、特定のデータを抽出するメソッドにクラス名とタグを指定します。
たとえば、「Amazon.com Inc.」 Webページに表示されているクラス名は、「h1」の下にタグ付けされた「company__name」です。 この情報を「find」メソッドに入力して、関連する HTML スニペットを変数に抽出できます。
name = soup_obj.find('h1', attrs={'class': 'company__name'})
変数「name」に格納されたHTMLスクリプトと必要なテキストを画面に出力してみましょう。
print(name) print(name.text)
抽出されたデータが画面に出力されるのを見ることができます。
Web スクレイプ IMDb Web サイト
私たちの多くは、映画を見る前に IMBb のサイトで映画の評価を探します。 このデモンストレーションでは、評価の高い映画のリストが表示され、Web スクレイピング用の美しい Soup に慣れるのに役立ちます。
ステップ 1: 美しい Soup と requests ライブラリをインポートします。
from bs4 import BeautifulSoup import requests
ステップ 2: スクレイピングしたい URL を「url」という変数に割り当てて、コード内で簡単にアクセスできるようにします。
「requests」パッケージは、URL から HTML ページを取得するために使用されます。
url = requests.get('https://www.imdb.com/search/title/?count=100&groups=top_1000&sort=user_rating')
ステップ 3: 次のコード スニペットでは、現在の URL の HTML ページを解析して、美しいスープのオブジェクトを作成します。
soup_obj = BeautifulSoup(url.text, 'html.parser')
次の画像のように、変数「soup_obj」には、目的の Web ページの HTML スクリプト全体が含まれています。
ウェブページのソースコードを調べて、スクレイピングしたいデータの HTML スクリプトを見つけてみましょう。
抽出する Web ページ要素の上にカーソルを置きます。 次に、それを右クリックし、検査オプションを使用して、その特定の要素のソース コードを表示します。 次のビジュアルは、より良いガイドになります。
クラスの「lister-list」には、評価の高い映画関連のすべてのデータが、連続する div タグの下位区分として含まれています。
各ムービー カードの HTML スクリプトのクラス「lister-item mode-advanced」の下に、下の画像で強調表示されているように、映画の名前、ランク、リリース年を格納するタグ「h3」があります。
注: 美しいスープの「find」メソッドは、指定された入力名に一致する最初のタグを検索します。 「find」とは異なり、「find_all」メソッドは、指定された入力に一致するすべてのタグを探します。
ステップ 4: 「find」および「find_all」メソッドを使用して、すべての映画の名前、ランク、年の HTML スクリプトをリスト変数に保存できます。
top_movies = soup_obj.find('div',attrs={'class': 'lister-list'}).find_all('h3')
ステップ 5: 変数「top_movies」に保存されている映画のリストをループし、以下のコードを使用して HTML スクリプトからテキスト形式で各映画の名前、ランク、および年を抽出します。
for movie in top_movies: movi_name = movie.a.text rank = movie.span.text.rstrip('.') year = movie.find('span', attrs={'class': 'lister-item-year text-muted unbold'}) year = year.text.strip('()') print(movi_name + " ", rank+ " ", year+ " ")
出力スクリーンショットでは、名前、ランク、およびリリース年を含む映画のリストを確認できます。
印刷されたデータを簡単に Python コードを含む Excel シートに移動し、分析に使用できます。
最後の言葉
この投稿では、Web スクレイピング用の美しい Soup のインストールについて説明します。 また、私が示したスクレイピングの例は、Beautiful Soup を使い始めるのに役立つはずです。
Web スクレイピング用に Beautiful Soup をインストールする方法に興味があるので、このわかりやすいガイドをチェックして、Python を使用した Web スクレイピングについて詳しく知ることを強くお勧めします。