Python による Web スクレイピング: 初心者向けガイド
公開: 2016-10-10ビッグ データの世界では、Web スクレイピングまたはデータ抽出サービスがビッグ データ分析の主要な要件です。 Web からデータを取得することは、企業が事業を継続するためにほぼ避けられなくなっています。 次に出てくる質問は、初心者として Web スクレイピングを行う方法です。

データは、さまざまな方法を使用して Web ソースから抽出またはスクレイピングできます。 Google、Facebook、Twitter などの人気のある Web サイトは、利用可能なデータを構造化された方法で表示および抽出するための API を提供しています。 これにより、API プロバイダーによって優先されない可能性のある他のメソッドの使用が防止されます。 ただし、Web サイトで情報がすぐに提供されない場合、Web サイトをクロールする必要が生じます。 オープンソースのプログラミング言語である Python は、そのシンプルで豊富なエコシステムにより、Web スクレイピングによく使用されます。 このタスクを実行する「BeautifulSoup」というライブラリが含まれています。 Python を使用した Web スクレイピングについて詳しく見ていきましょう。
Python 環境のセットアップ:
Python を使用して Web スクレイピングを実行するには、まず、Python 言語で記述されたコードを実行できる Python 環境をインストールする必要があります。 ライブラリはデータ スクレイピングを実行します。
Beautiful Soupは、使いやすい Python ライブラリです。 これは、Web ページから情報を抽出するための最高のツールの 1 つです。 専門家は、Web ページから表、リスト、または段落の形式で情報をクロールできます。 Urllib2 は、Web ページを取得するために BeautifulSoup ライブラリと組み合わせて使用できる別のライブラリです。 フィルターを追加して、Web ページから特定の情報を抽出できます。 Urllib2は、URL を取得できる Python モジュールです。
MAC OSX の場合:
MAC OSX に Python ライブラリをインストールするには、ユーザーはターミナル win を開き、次のコマンドを 1 つずつ入力する必要があります。
sudoeasy_install ピップ
pip install BeautifulSoup4
pip インストール lxml
Windows 7 & 8 ユーザーの場合:
Windows 7 および 8 のユーザーは、最初に Python 環境がインストールされていることを確認する必要があります。 環境がインストールされたら、コマンド プロンプトを開き、C:/ ディレクトリをルートする方法を見つけて、次のコマンドを入力します。
easy_install BeautifulSoup4
easy_installlxml
ライブラリがインストールされたら、データ スクレイピング コードを記述します。
実行中の Python:
データ スクレイピングは、小売店の現在の在庫をクロールするなど、明確な目的のために実行する必要があります。 まず、このデータを含む Web サイトをナビゲートするには、Web ブラウザーが必要です。 テーブルを特定したら、テーブルの任意の場所を右クリックし、ドロップダウン メニュー リストから inspect 要素を選択します。 これにより、画面の下部または側面にウィンドウがポップアップし、Web サイトの Html コードが表示されます。 ランキングが表に表示されます。 Web ページでテーブルを強調表示するコード行が見つかるまで、HTML データをスキャンする必要がある場合があります。
Python は、BeautifulSoup 以外にも HTML スクレイピングの代替手段をいくつか提供しています。 それらには以下が含まれます:
- スクレイピー
- 擦り傷
- 機械化する
Web スクレイピングは、非構造化データを HTML コードから構造化データ形式 (Excel ワークシートの表形式データなど) に変換します。 Web スクレイピングは、Google ドキュメントの使用からプログラミング言語まで、さまざまな方法で実行できます。 プログラミングの知識や技術力がない人でも、好みのWebサイトからすぐに使えるデータを提供するWebスクレイピングサービスを利用して、Webデータを取得することができます。
HTML タグ:
Web スクレイピングを実行するには、ユーザーは HTML タグについて十分な知識を持っている必要があります。 HTML リンクがアンカー タグ、つまり <a> タグ、「<a href="https://…">リンクはここにある必要があります</a>」を使用して定義されていることを知っておくと、非常に役立つ場合があります。 HTML リストは <ul> (順序なし) と <ol> (順序あり) リストで構成されます。 リストの項目は <li> で始まります。
HTML テーブルは <Table> で定義され、行は <tr> として定義され、列は <td> としてデータに分割されます。
- <!DOCTYPE html> : HTML ドキュメントはドキュメント タイプ宣言で始まります
- フォーマットされていないプレーン テキストの HTML ドキュメントの主要部分は、 <body>および</body>タグによって定義されます。
- HTML の見出しは、 <h1>から <h5> までの見出しタグを使用して定義されます。
- 段落は HTML の<p>タグで定義されます
- <html>と</html>の間に HTML ドキュメント全体が含まれています。
スクレイピングでの BeautifulSoup の使用:

BeautifulSoup を使用して Web ページをスクレイピングする際の主な関心事は、最終的な目的を特定することです。 たとえば、Web ページからリストを抽出する場合は、段階的なアプローチが必要です。
- 最初のステップは、必要なライブラリをインポートすることです。
#Web サイトのクエリに使用するライブラリをインポートする
urllib2 をインポート
#URL を指定 wiki = “https://”
# Web サイトにクエリを実行し、html を変数「page」に返す
ページ = urllib2.urlopen(ウィキ)
Web サイトから返されたデータを解析するための美しいスープ関数の #import
from bs4 import BeautifulSoup
# 'page' 変数で html を解析し、Beautiful Soup 形式で保存します
スープ = BeautifulSoup(ページ)
- 関数「prettify」を使用して、HTML ページのネストされた構造を視覚化します
- スープタグの操作:
Soup<tag> はタグを含む開始タグと終了タグの間のコンテンツを返すために使用されます。
- In[30]:soup.title
Out[30]:<title>2010 年までのインドの大統領一覧 – ウィキペディア、フリー百科事典</title>
- soup.<tag>.string: 指定されたタグ内の文字列を返します
- [38]:スープ.タイトル.文字列
- Out[38]:u '2010 年までのインドとブラジルの大統領一覧 – ウィキペディア、フリー百科事典'
- ページの <a> タグ内のすべてのリンクを見つける: タグ「<a>」を使用してリンクにタグを付けます。 したがって、オプションのsoup.aを使用すると、Webページで利用可能なリンクが返されます。 やってみましょう。
- [40]:soup.a で
Out[40]:<a id="トップ"></a>
- 適切なテーブルを見つける:
2010年までのインドとブラジルの大統領に関する情報を引き出す表が検索されているため、最初に適切な表を特定することが重要です. すべてのテーブル タグで囲まれた情報をクロールするコマンドを次に示します。
all_tables=スープ.find_all('テーブル')
適切なテーブルをフィルタリングする必要があるテーブルの属性「クラス」を使用して、適切なテーブルを識別します。 その後、次のように Web ページの必要なテーブルを右クリックして、クラス名を調べます。
- 要素を検査する
- クラス名をコピーするか、最後のコマンドの出力から正しいテーブルのクラス名を見つけます。
right_table=soup.find('table', class_='wikitable sortable plainrowheaders')
right_table
それが正しいテーブルを識別する方法です。
- 情報を DataFrame に抽出します。各行 (tr) を反復処理してから、tr (td) の各要素を変数に割り当て、それをリストに追加する必要があります。 テーブルのテーブルの HTML 構造を分析してみましょう。 (表見出し <th> の情報を抽出)
各要素の値にアクセスするには、各要素で「find(text=True)」オプションを使用する必要があります。 最後に、データフレームにデータがあります。
「BeautifulSoup」を使用してデータをクロールするには、Web ページから手動でデータを収集する労力を削減するさまざまな方法があります。 BeautifulSoup で記述されたコードは、正規表現よりも堅牢であると見なされます。 ここで説明した Web スクレイピング方法では、Python の「BeautifulSoup」ライブラリと「urllib2」ライブラリを使用します。 これは、Web スクレイピングに Python を使い始めるための簡単な初心者向けガイドでした。
Web スクレイピングが収益の増加にどのように影響するかについての次の記事にご期待ください。
データ サイエンスのために Web からデータを取得する予定はありますか? 私たちは助けるためにここにいます。 お客様の要件をお知らせください。
