PythonでWebスクレイピング入門【サンプルコード付き】基礎からライブラリ比較、活用例まで解説のカバー画像

PythonでWebスクレイピング入門【サンプルコード付き】基礎からライブラリ比較、活用例まで解説

公開日:2025/07/18最終更新日:2025/07/18

Webサイトから情報を自動的に取得するために「Webスクレイピング」という技術があります。これは、SNSやECサイトが普及している現代ではマーケティングやデータ分析で活躍している技術です。


Web上に公開されている膨大な情報を効率的に取得して、自社製品の品質向上や業務の効率化などで活用されています。この技術を実用化する際に使用されるのがPythonで、コードの簡潔さとライブラリの豊富さから重宝されているプログラミング言語です。


本記事ではPythonでのWebスクレイピングについて、基本や仕様するライブラリなどを中心に紹介していきます。興味のある方は最後までお読みいただき、参考にしてみてください。


1.PythonのWebスクレイピングとは

Webスクレイピングとは

Webスクレイピングとは、Webサイト上にある文字や画像などの情報を自動的に取得し、取得した情報から必要な部分の抽出や加工を行う技術です。取得した情報は、Excelなどのファイルやデータベースなどに保存して、マーケティング施策や業務効率化のためのデータ分析に使用されます。

Webスクレイピングでできること

WebスクレイピングはWebサイトに関する情報であれば、取得することが可能なため、さまざまなサイトから情報を取得することが可能です。例えば、以下のようなことに活用されます。

  • ニュースサイトから情報を取得し、要約の作成

  • 企業が公開している株価や業績などの数値データから、グラフの作成やデータ整理

  • Googleなどの検索エンジンで行った検索結果の取得

  • SNSにログインして、投稿されている文字や画像のデータ取得

紹介しているもの以外でも業務効率化などのために取得したい情報がWebサイトにある場合は活用すると良いでしょう。

Webスクレイピングを行う際の注意点

Webスクレイピングは実用化することでさまざまな情報を得ることができるため、むやみやたらに行ってよいわけではありません。


Webスクレイピングを行う上での注意点は以下の通りです。

  • 対象のWebサイトの利用規約

    Webサイトの利用規約でWebスクレイピングや情報の営利や業務目的での利用を禁止または制限している場合があるため、必ず確認してください。

  • Webサイトを管理するサーバーへの影響

    Webスクレイピングを行う際に連続して情報の取得を行いたい場合があると思います。その際に短時間で複数のリクエストを行ってしまうとサイトを管理しているサーバーに大きな負荷をかけてしまうのです。そうすると、アクセスができなくなったり、他のユーザーが利用しにくくなったりするため、リクエストは適度に時間を開けて行いましょう。

  • 個人情報や著作権の侵害

    現在は一部のWebサービスやSNSなどでイラストや動画、写真などの個人情報や著作物に関する情報を公開することが可能です。各種サービスやWebサイトの規約に注意書きがあるように、個人情報や著作権に関わる可能性がある情報は許可なく、利用してはいけません。

さまざまな情報が取得できるからこそ、取得できる情報をしっかりと確認して活用することが重要になります。

PythonでWebスクレイピングを行う理由

PythonでWebスクレイピングが行われている理由は以下の通りです。

  • 文法がシンプルで読み書きしやすい

    Pythonは文法がシンプルなため、JavaやC#などのプログラミング言語と比較して、半分ほどのコード量にすることもできます。また、シンプルな分だけ習得難易度も低く、Webスクレイピングの実用化までにかかるコストを減らすことも期待できるでしょう。

  • ライブラリが豊富

    Pythonには「Beautiful Soup」「Scrapy」「Requests」「Selenium」などスクレイピングやWeb操作に関する機能がまとめられているライブラリが複数存在します。目的や用途に合わせて修正をすることで簡単にWebスクレイピングを自動化することも可能です。

  • データ分析や解析に活用しやすい

    PythonのライブラリにはExcelなどの操作が可能な「Pandas」や高速な計算処理を可能とする「Numpy」などデータ分析の際に便利な機能をまとめたものもあります。また、AI(人工知能)の開発にも使用されている言語であるため、さらなる高度なデータ分析を行うこともできます。

Pythonの基本的な文法とライブラリの利用方法を知ることができれば、簡単に実装できるため、Webスクレイピングに適していると言えるでしょう。

2.PythonでのWebスクレイピングのやり方をサンプルコードも含め解説

PythonのWebスクレイピングは以下のような手順で行われます。

  1. 対象サイトの選定

  2. 使用するライブラリのインストール

  3. 対象サイトのHTMLファイルをダウンロード

  4. HTMLファイルの内容を解析

  5. 必要なデータの抽出

  6. 抽出データを保存

それぞれについて詳しく見ていきましょう。

①対象サイトの選定

まずは、どのような情報を取得したいのかを明確にして、対象のサイトを選定します。SNS、ニュース、ECサイトなどのサイトの種類や文字・画像など取得したデータの種類といった情報も含めたターゲットを決めましょう。

決める際には必ず対象サイトの利用規約や著作権に関わる内容の確認を行い、違反がないように注意してください。

②使用するライブラリのインストール

前述の通り、Pythonではライブラリを使用して、Webスクレイピングを行うため、ライブラリのインストールが必要です。例としてコマンドプロンプトまたはターミナルを使用して「Beautiful Soup」と「Requests」をインストールするコマンドを以下に示します。

pip install beautifulsoup4 requests

特にエラーが出ず「Successfully installed ~」というメッセージが表示されれば、インストール完了です。

③対象サイトのHTMLファイルをダウンロード

ここから実際に対象サイトの情報取得に入っていきます。まずは対象サイトのHTMLのダウンロードです。例として、以下に「Requests」を使用した場合のコードを紹介します。

# ライブラリのインポート

import requests


# 対象サイトのURLから情報の取得

url = "https://www.sample.com/"

response = requests.get(url)


# 取得した情報からHTMLをダウンロード

html = response.content

④HTMLファイルの内容を解析

次にダウンロードしたHTMLの解析です。例として、以下に「Beautiful Soup」と「Requests」で解析を行う場合のコードを紹介します。

# ライブラリのインポート

from bs4 import BeautifulSoup


# HTMLの解析処理

soup = BeautifulSoup(html, 'html.parser')

⑤必要なデータの抽出

これは解析を行ったHTMLから必要な情報を抽出する手順です。例として、タイトルやリストを取得する際のコードを紹介します。

# タイトルの取得

title = soup.find(‘title’)


# リストの取得

list = soup.find_all(‘li’)

このようにHTMLの要素名を指定することで取得することが可能です。取得した内容からテキストや設定されているリンクの情報などを取得することもできます。

⑥抽出データを保存

最後がデータの保存です。例として、テキストファイルに保存した場合について紹介します。

# ファイル編集モード

with open("output_data.txt", "w") as file:

    # 取得したタイトルのテキストをファイルに出力

    file.write(title.text)

【補足】Webスクレイピングからexcelへの出力

Pythonでは「OpenPyXL」「Pandas」などのライブラリでExcelの操作も可能です。そのため、上記の手順で取得したデータをExcelに出力することもできます。

数値データなどを取得し、グラフを作成したい場合や取得したデータを個別で管理したい場合などに便利です。


詳細はこちらでは説明しませんが、興味のある方は「OpenPyXL」「Pandas」でのExcel操作について調べてみると良いでしょう。


関連記事

クローリングとスクレイピングとの違いは?現場で使える活用術や取り扱い時の注意点など徹底解説!


【Python初心者向け】Pythonで作れるものや入門用のサンプルコード、おすすめの参考書を紹介!

3.PythonのWebスクレイピングのライブラリ比較

ここからはPythonでWebスクレイピングができるライブラリについて紹介していきます。

Beautiful Soup

Beautiful SoupはHTMLやXMLの解析や要素の取得に特化しているライブラリです。構文もシンプルで扱いやすいという特徴もあります。


【メリット】

  • 少ないコード量で、HTMLやXMLの解析可能

  • lxml, html.parser, html5libなどの複数のパーサーに対応

  • エラーに強く、HTMLに欠陥がある場合にも抽出可能

【デメリット】

  • JavaScriptを含む動的なWebサイトへの対応が困難

  • 大量のデータ収集が必要なスクレイピングには適さない

  • 処理速度が遅い

Scrapy

Scrapyは、Webクローリング用のフレームワークで、規模が大きいWebサイトからのデータ収集に適したライブラリです。クローリングもWebサイトから情報を取得する方法であり、基本はテキスト情報を取得する方法になります。


【メリット】

  • 非同期での高速なデータ収集処理が可能

  • Json, CSV, XMLなどの複数の形式で出力可能

  • リンクやサイト内のページ群の操作などの複雑なタスクが可能

【デメリット】

  • 習得難易度が高い

  • JavaScriptを含む動的なWebサイトへの対応が困難

  • スクレイピング時のデータ収集量が少ない場合はオーバースペック

Requests-HTML

Requests-HTMLは、RequestsとBeautiful Soupを組み合わせたようなライブラリで、Webサイトのデータ取得(HTMLなど)とHTMLの解析の両方が可能です。


【メリット】

  • 非同期リクエストとJavaScriptのレンダリングが可能

  • Webサイトを構成するHTMLやXMLなどのダウンロードと解析が1つのライブラリで可能

  • 学習コストが低い

【デメリット】

  • 基本的なクローリング機能しかなく、高度なクローリングは困難

  • 大量のデータ収集が必要なスクレイピングには適さない

  • 参考資料が他よりも少ない

Selenium

Seleniumは、ブラウザの自動操作により、Webサイト内での操作ができるライブラリになります。動的なページへの対応が可能なため、JavaScriptを含むスクレイピングとの相性が良いです。


【メリット】

  • JavaScriptを使用した動的なページのデータにも対応

  • ChromeやFirefoxなどの複数のブラウザに対応可能

  • フォーム入力やユーザー操作なども自動化可能

【デメリット】

  • ブラウザ操作になるため、処理が重い

  • ライブラリにある複数のモジュールを使用したセットアップが必要

  • 動的なページでないシンプルなスクレイピングには向かない

Splash

SplashはJavaScriptが使用されたWebサイトのレンダリングにより、動的な情報を取得できるレンダリングエンジンになります。


【メリット】

  • JavaScriptを使用した動的なページのデータにも対応

  • 軽量で高速なプラットフォームで動作するため、セットアップが楽

  • APIを通じたスクレイピングが可能

【デメリット】

  • 処理速度が遅い

  • 大量のデータ収集が必要なスクレイピングには適さない

  • 対応可能なWebサイトなどが限定的

上記のようにそれぞれのライブラリの特徴と向き不向きがあるため、自分が行いたいWebスクレイピングの内容を明確にした上で、選ぶようにしましょう。


関連記事

Pythonフレームワーク徹底解説【2025年版】


【2025年版】Pythonの最新バージョン|新機能やバージョンの選び方、インストール方法を解説

4.PythonのWebスクレイピング活用例

PythonのWebスクレイピングが活用される場面について、一部の例を紹介していきます。

マーケティング関連

代表的なのはマーケティング関連です。


例えば以下のようなことに使用されます。

  • 自社商品に関するレビューやSNSやニュースなどからトレンドの製品などの調査

  • 競合会社のWebサイトから製品の価格や説明を取得して、自社製品との比較分析

上記のようなことをスクレイピングで行い、商品開発や価格設定、ビジネス戦略の立案・改善の精度向上を目指すことが可能です。

業務の効率化

業務の効率化でもWebスクレイピングは活躍しています。


さまざまなIT化によって、業務において日常的にWebシステムやWebサービスを使用している企業は増え、Webから情報を取得して業務に活用する機会は増えている状態です。日常的に行う可能性があるWebの情報収集を毎回手動で行っているとかなりの時間と手間が必要となります。


そのため、そういった手間を減らす手段として、Webスクレイピングを使用した業務の一部自動化は業務効率化にピッタリです。


この時、機密情報や個人情報などの取り扱いが難しいデータが使用されないようにしないと重大事故につながるため、慎重にスクレイピング対象を選定することが大切になるでしょう。

AI(人工知能)のトレーニング

AI(人工知能)のトレーニングでも活用可能です。


例えば、入力された画像データから動物を検出するAIにおいて、手動で動物が写っている画像を大量に集めるのはかなりの時間を要します。そこでWebスクレイピングを使用して、Googleなどでの検索結果から画像を自動で取得させるようにすれば、人間は足りない部分を補うだけにすることも可能です。


AI(人工知能)のトレーニングには膨大なデータを必要とするため、Webスクレイピングで取得できる場合は活用してみるのも良いでしょう。


関連記事

Pythonとは?何ができるかや入門用の基本的な書き方などわかりやすく解説

5.PythonのWebスクレイピングの参考本

Python2年生 スクレイピングのしくみ 体験してわかる!会話でまなべる!

サンプルコードで実践しながら、HTMLの解析やデータの読み書き、ライブラリを使用したデータ活用法などを学習できるWebスクレイピングの参考書です。


シリーズの全書である「Python 1年生」ではプログラミングの仕組みや基礎知識を学ぶことができるため、初心者であれば併せて活用すれば、効率的な学習ができるでしょう。


Webスクレイピングとデータの扱いを基礎から学べるので、どんな方でもおすすめの1冊です。

Pythonクローリング&スクレイピング

タイトル通りPythonでのクローリングとスクレイピングの手法を中心に紹介してくれている参考書になります。また、関連するモジュールやライブラリについても説明があるため、Pythonの基礎からWebスクレイピングでの活用までを学ぶことが可能です。


それ以外にも「収集データの取り扱い」「連続実行での設計手法」などの実用的な部分も理論的な内容とともに身に着けることができます。


プログラミングなどの知識がある前提での内容であり、ページ数も多めなので、初心者や効率的な学びが欲しい方には不向きかもしれません。しかし、Webスクレイピングに関して理解を深めながら学びたい人にはおすすめになります。

PythonによるWebスクレイピング

Webスクレイピングの基本手法、Seleniumでの自動化、自然言語処理など高いレベルでのスクレイピングも学習したい方にはおすすめの参考書です。


また、リクエストやエラーのハンドリングやクローリング・スクレイピングの最適化などの実務に関する内容も身に着けることができるないようになっています。


その代わり、PythonやWebスクレイピングの基礎的な内容は知っている前提の内容も多いため、実用的な内容を中心に学んでみたい方におすすめです。

Python最速データ収集術

今まで紹介した参考書とは違い、PythonだけでなくHTMLの基礎についても触れているため、PythonでのWebスクレイピングを初心者でも身に着けることができます。


流れとしてはPythonとHTMLの基本に一通り触れた上で、WebスクレイピングとAPIに関する内容を学ぶようになっているため、スムーズに読み進めることができるでしょう。


お試し用のサイトやサンプルコードも用意してくれているため、実践的な学びを求めている方におすすめです。

6.まとめ

本記事ではPythonでのWebスクレイピングについて、基本的な内容からライブラリ、活用例などを紹介していきました。WebスクレイピングはWeb上の情報や作業が増えている現代では重要視される技術です。


Webスクレイピングで楽になることやサポートできることがあるのであれば、活用を検討してみるのも良いでしょう。しかし、その時には活用できる情報であるかのチェックは欠かせないようにしてください。


本記事が皆様にとって少しでもお役に立てますと幸いです。


フリーランスボード」は、数多くのフリーランスエージェントが掲載するITフリーランスエンジニア・ITフリーランス向けの案件・求人を一括検索できるサイトです。


開発環境、職種、単価、稼働形態、稼働日数など様々な条件から、あなたに最適なフリーランス案件・求人を簡単に見つけることができます。

単価アップを目指す方や、自分の得意なスキルを活かせる案件に参画したい方は、ぜひ「フリーランスボード」をご利用ください。


自身に最適なフリーランスエージェントを探したい方はこちらよりご確認いただけます。

PythonでWebスクレイピング入門【サンプルコード付き】基礎からライブラリ比較、活用例まで解説に関するよくある質問

Webスクレイピングとはどんな技術ですか?

PythonがWebスクレイピングに適している理由は何ですか?

Webスクレイピングを行う際の注意点は何ですか?

Webスクレイピングは具体的に何に活用できますか?

PythonでのWebスクレイピングの基本的な手順を教えてください。

Beautiful Soupライブラリの主な用途は何ですか?

JavaScriptを含む動的なWebページに対応するライブラリはどれですか?

Webスクレイピングは業務効率化にどう役立ちますか?

WebスクレイピングはAI(人工知能)のトレーニングに利用できますか?

PythonでのWebスクレイピング学習におすすめの本はありますか?

無料で登録したらスカウトを待つだけ フリーランスの新しい仕事探しを始めよう

この記事の監修者

笠間 慎

大学卒業後、人材紹介会社にコンサルタントとして従事。フリーランスとして独立。その後、フリーランス案件サイト「フリーランススタート」の立ち上げに編集長兼ライターとして参画し、月間30万人が利用する人気メディアへと成長させる。 2024年より、フリーランスボード編集長に就任。自身の経験を元に、フリーランスの活躍を支援する情報を発信している。

運営者情報

「フリーランスボード」はINSTANTROOM株式会社によって運営されています。編集は同社のフリーランスボードコンテンツ制作チームが担当しています。

会社名

INSTANTROOM株式会社

設立年月日

2021年3月31日

事業内容

フリーランスボード

ギョーテン

EngineerDASH

FreelanceBase

コンテンツ制作

運営ポリシー

フリーランスボードは、すべてのフリーランスが安心して活躍できる社会を目指し、公平かつ信頼できる情報を分かりやすく提供することに努めます。 私たちは、一次情報に基づいた正確なコンテンツや求人案件情報を通じ、 フリーランスの皆さまが最適な案件選びやキャリア形成を行えるようサポートします。

フリーランスボードの調査リリース

ITフリーランス及びフリーランスエージェント市場白書 2025フリーランスエージェント及びITフリーランス人材の市場調査【2024年版】

フルリモート案件を 無料登録した方限定で配信中

目次

1.PythonのWebスクレイピングとは

Webスクレイピングとは

Webスクレイピングでできること

Webスクレイピングを行う際の注意点

PythonでWebスクレイピングを行う理由

2.PythonでのWebスクレイピングのやり方をサンプルコードも含め解説

①対象サイトの選定

②使用するライブラリのインストール

③対象サイトのHTMLファイルをダウンロード

④HTMLファイルの内容を解析

⑤必要なデータの抽出

⑥抽出データを保存

【補足】Webスクレイピングからexcelへの出力

3.PythonのWebスクレイピングのライブラリ比較

Beautiful Soup

Scrapy

Requests-HTML

Selenium

Splash

4.PythonのWebスクレイピング活用例

マーケティング関連

業務の効率化

AI(人工知能)のトレーニング

5.PythonのWebスクレイピングの参考本

Python2年生 スクレイピングのしくみ 体験してわかる!会話でまなべる!

Pythonクローリング&スクレイピング

PythonによるWebスクレイピング

Python最速データ収集術

6.まとめ