はじめてでも大丈夫!Pythonでスクレイピングする方法をわかりやすく解説

データサイエンス

2024.08.21

INDEX

スクレイピングは便利な技術ですが、使い方を間違えると問題を引き起こす可能性があります。以下の点に注意しましょう。

 

  • ・対象のWebサイトの利用規約を必ず確認してください。スクレイピングを禁止しているサイトもあります。
  • ・短時間に大量のリクエストを送ると、サーバーに負担をかけてしまいます。適度な間隔を空けてアクセスするようにしましょう。
  • ・個人情報や著作権のある情報を不適切に扱わないよう注意してください。

 

スクレイピングとは?

スクレイピングとは、Pythonというプログラミング言語を使って、Webサイトから自動的に情報を収集する方法です。例えば、ニュースサイトの最新記事タイトルを一覧で取得したり、ECサイトの商品情報を大量に集めたりすることができます。

人間が手作業で行うと何時間もかかるような作業を、プログラムを使えば数分で終わらせることができるのです。しかも、人間が行うよりも正確に情報を収集できるというメリットもあります。

スクレイピングの準備

スクレイピングを始める前に、まずは必要な道具を揃えましょう。

 

⑴Pythonのインストール

 

まず、Pythonをコンピュータにインストールする必要があります。Pythonの公式サイト(https://www.python.org/)からインストーラーをダウンロードし、指示に従ってインストールしてください。

 

⑵pipとライブラリのインストール

 

pipはPythonのパッケージ管理システムで、Pythonのライブラリやパッケージを簡単にインストールするためのツールです。通常、Pythonをインストールすると自動的にpipもインストールされますが、念のため確認しておきましょう。

pipがインストールされているか確認するには、コマンドプロンプトやターミナルを開き、以下のコマンドを入力します。

 

pip –version

 

このコマンドを実行して、pipのバージョン情報が表示されればインストールされています。もし表示されない場合は、以下のコマンドを使ってpipをインストールしてください。

 

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py

 

次に、スクレイピングに必要な追加の道具(ライブラリと呼びます)をインストールします。コマンドプロンプトやターミナルを開き、以下のコマンドを入力してBeautiful Soup4をインストールしてください。

 

pip3 install requests beautifulsoup4

 

続けてrequestsをインストールします。

 

pip3 install requests

 

⑶テキストエディタのインストール

 

最後に、プログラムを書くためのテキストエディタが必要です。初心者の方には、Visual Studio CodeSublime Textがおすすめです。どちらも無料で利用することができるので、好みのエディタをインストールしてください。

 

これでスクレイピングの準備は完了です。

Pythonスクレイピングの基本

スクレイピングの基本的な流れは、「Webページを取得する」→「HTMLを解析する」→「必要な情報を抽出する」の3ステップです。

まず、Webページを取得するために「requests」というライブラリを使います。

テキストエディタを使用して、以下のコードをtest.pyというファイル名で保存してください。

 

import requests


url = “https://www.python.org/”

r = requests.get(url)


print(r.status_code)  # 200が表示されればOK

print(r.text)  # Webページの内容が表示されます

 

上記のコードによりPythonの公式サイトのHTMLを取得することができます。

次に、取得したHTMLを解析するために「BeautifulSoup」というライブラリを使います。

 

from bs4 import BeautifulSoup


soup = BeautifulSoup(r.content, ‘html.parser’)


# Webページのタイトルを取得

title = soup.title.string

print(title)


# 特定の要素を取得

content = soup.find_all(‘div’, class_=’shrubbery’)

for item in content:

    print(item.text.strip())

 

これらの基本的な操作を組み合わせることで、様々なWebサイトから情報を取得できるようになります。

上記のコードは、コマンドプロンプトやターミナルを開き、以下のコマンドを入力することで実行することができます。

 

python3 test.py

Pythonスクレイピングの実践

では、実際にYahoo!ニュースの主要記事一覧を取得してみましょう。

テキストエディタを使用して、以下のコードをtest-2.pyというファイル名で保存してください。

 

import requests

from bs4 import BeautifulSoup

import re


# アクセスするURL

url = “https://www.yahoo.co.jp/”


# URLにアクセスする

res = requests.get(url)


# res.textをBeautifulSoupで扱うための処理

soup = BeautifulSoup(res.content, “html.parser”)


# href属性に特定の文字列が含まれているリンクを検索

elems = soup.find_all(‘a’, href=True)


# 特定の文字列(pickup)が含まれているリンクをフィルタリング

for elem in elems:

    href = elem[‘href’]

    if re.search(“news.yahoo.co.jp/pickup”, href):

        print(f”記事タイトル: {elem.get_text(strip=True)}”)

        print(f”記事URL: {href}”)

        print(“—–“)

 

このプログラムを実行すると、Yahoo!ニュースの主要記事のタイトルとURLが一覧で表示されます。

コマンドプロンプトやターミナルを開き、以下のコマンドを入力することで実行することができます。

 

python3 test-2.py

Pythonスクレイピングの注意点

スクレイピングは便利な技術ですが、使い方を間違えると問題を引き起こす可能性があります。以下の点に注意しましょう。

 

  • ・対象のWebサイトの利用規約を必ず確認してください。スクレイピングを禁止しているサイトもあります。
  • ・短時間に大量のリクエストを送ると、サーバーに負担をかけてしまいます。適度な間隔を空けてアクセスするようにしましょう。
  • ・個人情報や著作権のある情報を不適切に扱わないよう注意してください。

 

スクレイピングデータの活用

スクレイピングで収集したデータは、さまざまな形で活用できます。例えば、以下のような方法が挙げられます。

 

①分析とインサイトの抽出

 

データを分析して傾向やパターンを見つけることができます。たとえば、記事のタイトルから頻出するトピックやキーワードを抽出し、トレンドを把握することができます。また、データの統計分析を行い、重要な指標を把握することも可能です。

 

②データの視覚化

 

CSVファイルやExcelシートに保存したデータを使って、グラフやチャートを作成し、視覚的にわかりやすくすることができます。たとえば、時系列データを使って折れ線グラフを作成し、トレンドの変化を確認することができます。

 

③自動化と継続的なデータ収集

 

スクレイピングを定期的に実行することで、継続的にデータを収集し、最新の情報を把握することができます。これにより、常に最新のトレンドや変化に対応することが可能になります。

 

④機械学習モデルのトレーニング

 

収集したデータを用いて、機械学習モデルをトレーニングし、予測や分類を行うことができます。例えば、ユーザーの行動パターンを学習させて、パーソナライズされた推薦システムを構築することができます。

 

これらの方法を組み合わせることで、スクレイピングデータの価値を最大限に引き出し、有益な情報を得ることができます。

まとめ

この記事では、Pythonを使用したスクレイピングの方法について紹介しました。今回紹介した内容はスクレイピングの基本的なものではありますが、皆さんがイメージしていたよりも簡単にスクレイピングすることができたのではないでしょうか。Pythonを使ったスクレイピングは、Webから効率的にデータを収集するとても便利な方法です。スクレイピングは非常に有用なスキルですが、同時に責任も伴います。対象サイトの利用規約を遵守し、サーバーに過度な負荷をかけないよう注意しましょう。また、収集したデータの取り扱いには十分な配慮が必要です。

Pythonスクレイピングの基本を習得したら、より複雑なプロジェクトに挑戦したり、機械学習や自然言語処理と組み合わせたりすることで、さらに可能性が広がります。Web上の膨大なデータを活用し、新たな知見を得るツールとして、Pythonを使ってスクレイピングを始めてみましょう。

データミックスでは、初学者や文系出身の方でもデータサイエンティストに必要な知識やスキルを体系的に学習できるデータサイエンティスト育成講座を提供しています。

Re スキル講座として認定されている本格的な講座で、ビジネスの課題を解決するための思考力と課題解決力を養うことを重視しているため、ビジネスの現場で役立つ実践的なスキルを習得できます。

オンラインで受けられる無料の個別相談も実施していますので、「カリキュラムの詳細を知りたい」「講座を受講してみたいけれど、ついていけるか不安」という方もぜひお気軽にお申し込みください。

関連記事

まずはオンラインで体験&相談

体験講座やワークショップ、キャリアの相談、卒業生との交流など、さまざまな無料オンラインイベントを開催しています。

公式サイトへ

ピックアップ

VIEW MORE

インタビュー

VIEW MORE

ランキングRANKING

  • WEEKLY週間

  • MONTHLY月間

VIEW MORE