Back to Insights生産性とテクノロジーツール

5分でPythonを使ったウェブスクレイピングの方法

Mercury Technology Solutions2020年3月20日3 min read

要約:ウェブスクレイピングは、ウェブサイトからデータを自動的に抽出するプロセスであり、時間と労力を節約します。このガイドでは、Pythonを使用してニューヨークMTAから複数のファイルをダウンロードする方法を説明し、法的考慮事項の重要性を強調し、ステップバイステップのコード例を提供します。

ウェブスクレイピングのマスター:データ抽出を自動化する

ウェブスクレイピングは、ウェブサイトから大量の情報に自動的にアクセスし、抽出するための強力な技術です。データを収集するために必要な時間と労力を大幅に削減し、手作業の煩わしいタスクを効率的な自動化プロセスに変えることができます。

このガイドでは、ニューヨークMTAのウェブサイトから数百のファイルをダウンロードする実用的なアプリケーションを紹介します。この例は、ウェブスクレイピングの世界を探求したい初心者に最適です。

ウェブスクレイピングの理解

コードに入る前に、ウェブスクレイピングの倫理的および法的考慮事項を理解することが重要です。データの使用目的が準拠していることを確認するために、常にウェブサイトの利用規約を読みましょう。多くのサイトは、商業目的でのデータ使用を禁止しています。また、データをあまりにも急速にダウンロードすることは避けてください。サーバーに負担をかけ、ブロックされる原因となる可能性があります。

データのためのウェブサイトの検査

ウェブスクレイピングの最初のステップは、ウェブサイトのHTML内で抽出したいデータを見つけることです。私たちの例では、ニューヨークMTAのウェブサイトから改札データをスクレイピングします。このサイトでは、2010年5月から現在までの週ごとの集計データが.txtファイルとしてホストされています。関連するHTML要素を見つけるために:ウェブページを右クリックして「検査」を選択し、サイトのコードを表示します。

検査ツールを使用して要素を強調表示し、その対応するHTMLタグを見つけます。この場合、ターゲットデータファイルは、一般的にハイパーリンクに使用される<a>タグ内にあります。

  1. Pythonでのコーディング
  2. ウェブスクレイピングに必要なPythonコードを始めましょう。requests、urllib、BeautifulSoupなどのライブラリを使用して、ダウンロードプロセスを自動化します。ステップ1:ライブラリのインポートimport requests

import urllib.request

import timefrom bs4 import BeautifulSoupステップ2:ウェブサイトにアクセスURLを設定し、サイトのコンテンツにアクセスするためのリクエストを行います。url = 'http://web.mta.info/developers/turnstile.html'response = requests.get(url)ステップ3:HTMLを解析

BeautifulSoupを使用してHTMLを解析し、ナビゲート可能な構造を作成します。

soup = BeautifulSoup(response.text, "html.parser")ステップ4:リンクを見つけるファイルリンクがある<a>タグをすべて見つけ、38行目から始めます。soup.findAll('a')

one_a_tag = soup.findAll('a')[38]

link = one_a_tag['href']

ステップ5:ファイルをダウンロードファイルの完全なURLを構築し、ダウンロードします。

Step 3: Parse the HTML

Use BeautifulSoup to parse the HTML and create a navigable structure.

soup = BeautifulSoup(response.text, "html.parser")

Step 4: Locate the Links

Find all <a> tags, where our file links are located, starting from the 38th line.

soup.findAll('a')one_a_tag = soup.findAll('a')[38]link = one_a_tag['href']

Step 5: Download the Files

Construct the full URL for the file and download it using urllib

download_url = 'http://web.mta.info/developers/' + linkurllib.request.urlretrieve(download_url, './' + link[link.find('/turnstile_')+1:])

ステップ6: ループを使って自動化する

手動でのダウンロードをループに置き換えて、すべてのファイルのプロセスを自動化します。

これらのステップを踏むことで、ウェブスクレイピングを通じてデータダウンロードプロセスを自動化する道が開けます。この技術は効率を最適化するだけでなく、データ駆動型の意思決定の新たな道を切り開きます。

皆さん、楽しいウェブスクレイピングを!

Originally published on MTS Blog & Research