
Pythonを学習し始めた矢先、スクレイピングなる存在を知ったそこのあなた。奇遇ですね。筆者もその経路でスクレイピングを学びました(笑)
魅力的に見えるスクレイピングですが、実は違法と見なされる場合がある事をご存知でしたか。知らない間に法を犯していた!とならない為にも、Python歴7年の筆者が事前に知っておきたいスクレイピングに関する情報をまとめました。
最後まで見ていただければ、安全に、楽しく、強力にスクレイピングを実践するための情報を収集できます。では早速見ていきましょう。
目次
スクレイピングとは
スクレイピングとは、ウェブサイトから任意の情報を取得する技術を指します。また、それを行うプログラムを指して『スクレイパ』と呼ぶこともあります。
スクレイピングをすることで、ウェブサイト上に存在している、ありとあらゆる情報をローカル環境下に保存することが可能です。好きなウェブサイトがあっても、知らないうちに閉鎖されていてコンテンツの閲覧ができない!となる前に、スクレイピングを実施していればコンテンツが閲覧できなくなる可能性を回避できます。
スクレイピングと混同されがちな技術としてクローリングというものをご存知でしょうか。続いてご覧ください。
クローリングとの違い
クローリングとは、ウェブサイトのリンクをなぞって、ウェブページを巡回する技術を指します。また、それを行うプログラムを指して『クローラー』と呼ぶこともあります。
ご自身でブログを運営されている方ならご存知かもしれません。“記事を更新した際にGoogleのクローラーに巡回させないと、データベースにインデックスされない”という言葉の羅列を聞いたことのある人も多いでしょう。かの有名企業にも積極的に採用されている技術です。
ウェブサイト内を巡回して(クローリング)から、任意の情報を取得する(スクレイピング)という関係性について、それぞれ異なる技術であるという点も含めて認識しましょう。
スクレイピングは違法行為の可能性がある
ここまでスクレイピングとクローリングについてご紹介しました。しかし冒頭申し上げた通り、クローリングとスクレイピングには違法となる可能性があります。なぜ違法となる場合があるのでしょうか。それは著作権とサーバー負荷の観点から説明可能です。
まず、著作件について。詳細は他サイトの記事※1に譲るとして、概要だけ説明します。
※1スクレイピングは違法?3つの法律問題と対応策を弁護士が5分で解説
コンピュータによって情報を解析すること、もしくは翻訳(ここでは、取得した情報に新たに表現を加えること)以外の場合は著作権法に引っかかる可能性があります。言い換えると、取得した情報を営利目的で他人に譲渡する場合などは違法となります。その為、情報を販売する場合はスクレイピングしたものを、自分で分析した後に再構成する必要があります。取得結果をそのまま、はNGです。
サーバー負荷に関しては過去の判例(岡崎市立図書館事件もしくはLibrahack事件※2)を元に考えてみましょう。問題となったのはサーバーへのアクセス頻度でした。頻度の是非についてここで言及するつもりはありませんが、頻繁すぎるサーバーへのアクセスは、ときにDoS攻撃と見なされる可能性があります。DoS攻撃について詳細を知りたい方はこちら(他サイトの記事)を※3参照ください。
※2岡崎市立中央図書館事件 – ウィキペディア(Wikipedia)
※3Dos攻撃とDDos攻撃の違いとは?
つまり、クローリング/スクレイピングの頻度が高すぎると、サーバーへのDoS攻撃と見なされる可能性がある、ということです。アクセス先のサーバー許容負荷を知らないうちにクローラー/スクレイパをコピペして、URLのみ変更して実行すると・・・恐ろしいですね。事前にサーバーに関して情報を知る必要がありますよね。そこでウェブサイトにはrobots.txtが用意されている場合が多いです。
まずはrobots.txtの確認から
robots.txtというファイルには、クローラー/スクレイパに対して、どのURLにアクセスして良いか、してはいけないか、その頻度について等の情報が記載されています。例えば以下のrobots.txtについて見てみると、
例: robots.txtに記載されている中身について
User-agent: *
Crawl-delay: 5
Disallow: /ng
Allow: /ok
sitemap: http://example.com/sitemap.xml
User-agent 対象となるクローラーの種類
Disallow クロールを禁止するパス
Allow クロールを許可するパス
Crawl-delay クロールする間隔(秒)
Sitemap サイトマップXMLのURL
などが挙げられます。ここで、Crawl-delayにはクロールの間隔が指定されている場合があり、クロールする場合はこの頻度を守る必要があります。
robots.txtは必ずウェブサイトのトップページに位置しています。使ったことがない人はいないサイトといえばWikipediaがありますね。Wikipediaにもrobots.txtは用意されています。アドレスバーにhttps://www.wikipedia.org/robots.txtを入力すれば閲覧可能です。
APIの提供有無を確認する
クローリング/スクレイピングをする前に、まずはAPIの提供有無を確認してみましょう。APIとはアプリケーション(自分の実行したいコト)と、プログラムを繋ぐ窓口のようなもので、Twitterなどでも公開されています。
例えばTwitterにて特定アカウントのツイートを取得したい場合、API経由で実装が可能です。これを自作のクローラー/スクレイパで実現することも可能ですが、API経由の場合、Twitter側がアクセス制限をかけているので、ユーザーが負荷を気にしすぎる必要はありません。
このように、APIが提供されている場合はAPIを使うことで、より安全にウェブサイトから任意の情報を取得可能となります。APIが存在していない場合に始めて自作のクローラー/スクレイパを実装しましょう。
Pythonでのスクレイピング実践方法
ここまでスクレイピングを始める前に必要な内容をまとめてきました。では、Pythonでスクレイピングを実践するためにはどうすれば良いのでしょうか。
ウェブに関する知識を全て身につけてからPythonでスクレイピングを実践することも、もちろん可能です。しかしせっかくPythonを学習しているのに遠回りしていては時間がもったいないですよね。そこで今回は有用なライブラリ、RequestsとBeautifulSoupについて簡単にご紹介します。
requests
指定したウェブサイトやウェブページのHTML/XML情報を取得します。Pythonには標準ライブラリであるurllib2がありますが、高機能故に少し使い勝手が悪いです。
Requestsの日本語公式を見てみると“人間のためのHTTP”と大げさに記述されています。記述はともかくとして非常に使い勝手が良く、URL文字列を指定することでHTMLの取得が可能です。ただし取得したHTMLには自分にとって必要ない情報が多く含まれています。
そこで活躍するのがBeautiful Soupです。
Beautiful Soup
Requestsで取得したHTMLやXMLから任意のデータを抽出するためのライブラリです。取得したてのHTMLは不必要な情報が大量に含まれています。その中から任意のタグ情報のみを抽出することが可能です。例えばとあるウェブサイトにアクセスし、お気に入りの画像を複数枚見つけ、その画像すべてが欲しいとします。Requestsを使ってHTMLを取得した後に、Beautiful Soupで成形し、IMGタグのsrcのみを抽出する・・・といったことも可能です。
このように2つのライブラリを組み合わせることによって、強力なスクレイパを自作することが可能です。
スクレイピングの効率的な学習方法
スクレイピングを使うことで、効率良くデータ収集できるのは事実です。しかし一方でスクレイピングを実践する為にはHTMLやHTTP等のウェブに関する知識を一定量必要とします。
Pythonを7年使ってきた筆者の経験から判断して、ウェブに関する知識を体系的に学ぶのは難しいです。なぜならネット上にはほとんどすべての情報が存在している一方で、自分にとって必要な知識が体系的にまとまっているものは存在していないからです。一人ひとり実現したいことが異なるので当然ですよね。
餅は餅屋ではありませんが、効率良く学習するためには、質問できる環境が大切です。自分の周りにウェブについて詳しい人がいる場合は、迷わず助言を求めましょう。1人で解決しようとするならば、膨大な時間が必要となってしまいます。
もし周りに詳しい人がいない場合は、プログラミングスクールに通うことをオススメします。プログラミングスクールは、必要な知識を体系的に学べるだけでなく、質問できる環境が整っており、その道のプロから的確な回答が返ってきます。効率良く学習するうえでこの上ない環境といえます。
スクールはどこがおすすめ?
Pythonを学習するのにおすすなプログラミングスクールをご紹介します。
Python Winner

資格取得に強い老舗スクール『Winスクール』が運営する、Pythonに特化したオンラインスクールです。AI・機械学習やデータ分析の領域で即戦力となるためのスキル習得を目的としています。専任のアドバイザーによる手厚いキャリアサポート※1にも定評のあるサービスです。
最大の特徴は、プロ講師による完全マンツーマンによるレッスンで、受講生一人ひとりの理解度に合わせて学習を進められる点です。また、レッスンは自由予約制なので、自分のペースで学習できます。最短2週間の短期集中受講も可能です。
カリキュラムは、アウトプットを重視しているため、現場で通用するプログラミング力を身につけることが可能です。また、学習環境についてはPCとインターネット環境さえあればOK!面倒な環境設定もなく、すぐに学習を開始できます。
Python Winnerでは、Pythonを基礎から応用までを学べる講座の他、AI・機械学習やデータ分析、データアナリスト講座などの専門コースも用意しています。目的に合わせた実務レベルのスキル習得を、未経験から目指せるのが強みです。
なお、国の助成金精度を活用すれば、受講料の最大80%がキャッシュバックされます。※リスキリングを通じたキャリアアップ支援事業 他
未経験からPythonでキャリアを変えられるオンラインスクール!
Python Winner
Pythonを学んで就職・転職したい方におすすめなスクール。マンツーマンレッスンとアウトプット実践学習で実践力を確実に習得できます!
RUNTEQ(ランテック) Python × AIコース



RUNTEQ(ランテック)は、システム開発を手がける「株式会社RUNTEQ」が運営する、実践型オンラインプログラミングスクールです。実際の開発現場のニーズを反映したカリキュラムによって、即戦力となるスキルを効率的に習得できる環境に強みがあります。
特に近年需要が高まっている「Python×AIを扱えるエンジニア」の育成に力を入れている点は、RUNTEQ(ランテック)の大きな特徴です。
『Python×AIコース』のカリキュラムでは、Pythonの基礎からWebアプリ開発、データ分析、生成AI・機械学習の基礎までを体系的に学習します。最新の技術を取り入れることで、Webエンジニアとしてのスキルはもちろん、業務効率化やAIを活用したアプリ開発スキルまで習得可能です。
RUNTEQ(ランテック)では学習サポートも徹底しており、インプット→課題による実践→自動レビューを何度も繰り返すことで『自走力』を身につけていきます。その他、1日1回おこなわれる講師面談や、24時間いつでも質問・相談できる『AI講師』、回数無制限の質問フォームなど、受講生を挫折させないための環境作りも万全です。
また、エンジニア転職で高く評価される『オリジナルアプリ開発カリキュラム』も用意されており、こちらでは企画・開発・運用・改善まで一貫して経験しながら、自分だけのポートフォリオを制作できます。AI機能を組み込んだアプリ開発にも対応しているため、最新技術を扱えるエンジニアとしてアピールしやすい点がメリットです。
未経験からのエンジニア就職・転職に不安を感じる方にも、経験豊富なキャリアアドバイザーが徹底サポートします。キャリアプランの構築や自己分析、面接対策、求人紹介など、理想のキャリア実現のためのフルサポートを受けることが可能です。特に、エンジニア特有の技術面接対策まで踏み込んだトレーニングシステムは、RUNTEQ(ランテック)ならではの強みです。
RUNTEQ(ランテック)には、独自のコミュニティが用意されており、勉強会やイベントなどが頻繁に開催されています。これらの場には卒業後も参加でき、継続的に学習できるのが魅力です。
実践的カリキュラムで「AIを使いこなせるエンジニア」を目指す!
RUNTEQ(ランテック) Python × AIコース
開発会社監修の実践的カリキュラムで「現場レベルのPython・AIスキル」習得できるスクール。Webエンジニアはもちろん、業務の効率化やスキルアップしたい方にもおすすめです!
キカガク



キカガクは、AI・機械学習・データサイエンス分野に特化した人気のオンラインスクールです。累計45,000名以上の受講者数を突破しており、AIエンジニアやデータサイエンティストを目指せるスクールとして高い人気を集めています。
Pythonの基礎から数学・統計、機械学習、ディープラーニング、生成AI活用、さらにAIを搭載したWebアプリケーション開発まで幅広く学習できるため、実践的なAIスキルを体系的に習得したい方におすすめです。
また、JDLA(日本ディープラーニング協会)のE資格認定講座にも対応しており、E資格の受験に必要なレベルのスキルを身につけることができます。
経済産業省の第四次産業革命スキル習得講座にも認定されているため、給付金制度を利用すれば受講料の最大80%が補助されます。通常792,000円(税込)の受講料も、制度を利用することで実質158,400円(税込)まで抑えることが可能※なので、これまでプログラミングスクールへの受講を予算面でためらっていた方にも魅力的です。※6ヶ月コースの場合
キカガクの学習スタイルは、オンライン完結型のハンズオン形式による動画学習。Pythonや数学・統計の基礎から、機械学習・ディープラーニング・生成AI活用・AIアプリ開発までを段階的に学べる環境が整っています。
エラーや不明点があってもチャットを使っていつでも質問可能で、定期的な個別メンタリングも実施されているため、未経験者でも挫折しにくく、安心して学習を進めることができます。
また、チーム学習を通じて受講生同士でコミュニケーションを取りながら学習できるため、モチベーションを維持しやすいのも特徴です。
もっと詳しく比較したい方は、「Pythonが学べるおすすめプログラミングスクール15選【安い&良質】」という記事を参考にしてください。通学・オンライン、マンツーマンやオーダーメイドカリキュラムなど、目的に”ぴったり”の教室が見つかりますよ!
まとめ|Pythonでスクレイピングを始める前に知っておくべき内容
ここまで、Pythonでのスクレイピングについて解説しました。スクレイピングを始める前に知っておかなければならない内容を紹介しました。
特に、違法行為にならないためにも事前のrobots.txtの確認やAPIの有無は確認しましょう。また、PythonでスクレイピングをするにあたってオススメのライブラリとしてrequestsとBeautiful Soupについてご紹介しました。この2つを組み合わせることで強力なスクレイパを自作可能です。
スクレイピングは魅力的な技術です。一方で幅広い知識が要求される分野でもあります。この記事がスクレイピングの広大な世界への足がかりになれば幸いです。
もう一度「未経験者がPythonでスクレイピングを始める前に知っておくべき内容まとめ」を読む ↑
Python(スクレイピング)を活かせるエンジニア転職におすすめな転職サイト・転職エージェント
Python(スクレイピング)を活かしたエンジニア転職におすすめな転職エージェント・転職サイトを比較するなら「IT/Web系エンジニアにおすすめな転職サイトランキング21選!未経験OKあり」という記事を参考にしてください。活かせる言語や業種など、自分の目的や条件にあった職場探しにお役立てください。
Python未経験者が本格的に学習するならスクールがおすすめ
Pythonを『未経験』からでも安心して学べるプログラミングスクールをご紹介します。少しでも気になるスクールがあれば、無料の相談会・体験会に登録してみてくださいね。
- Python Winner
Pythonを学んで就職・転職したい方におすすめなスクール。マンツーマンレッスンとアウトプット実践学習で実践力を確実に習得できます - RUNTEQ(ランテック) Python × AIコース
開発会社監修の実践的カリキュラムで「現場レベルのPython・AIスキル」習得できるスクール。Webエンジニアはもちろん、業務の効率化やスキルアップしたい方にもおすすめです! - キカガク
未経験からAI搭載のWebアプリ開発まで最短最速で学習できます。国の給付金制度を使えば受講料が最大80%OFF! - DMM WEBCAMP Pythonコース
未経験からでも挫折しないカリキュラムとメンターの指導で最短でスキル習得。転職/副業支援が手厚い人気スクール! - 忍者CODE
業界最安クラスの受講料と現役エンジニアのサポートで、未経験からプロエンジニアが目指せる人気スクールです! - スタアカ(スタビジアカデミー)
動画学習によるAI/データサイエンス専門のスクール。ライトプランは980円/月と業界最安値の料金で学習可能です!
もっと詳しく比較したい方は、「Pythonが学べるおすすめプログラミングスクール15選【安い&良質】」という記事を参考にしてください。通学・オンライン、マンツーマンやオーダーメイドカリキュラムなど、目的に”ぴったり”の教室が見つかりますよ!
Python以外の言語を学べるスクールを比較するなら
もっと多くのプログラミングスクールの中から比較したいという方は、「プログラミングスクールおすすめランキング19選!社会人・未経験の転職にも有利!」という記事を参考にしてください。
転職付き(転職保証型)のプログラミングスクールの詳細を知りたいかたは、「【無料あり】転職支援・保証型プログラミングスクール比較17選!社会人・学生さんの就職に強い!」をご覧いただき、自分の目標や目的にぴったりのスクールを見つけてくださいね。
- 【初心者向け】Pythonで作れるものや出来ることを徹底解説+スクールの紹介も!
- Python入門編!人気の理由や学習方法、将来性や転職市場など初心者向けに徹底解説!
- Python未経験者は必読!【Djangoの求人・会社】のあれこれを徹底紹介!
- 初心者向け!Pythonでデスクトップアプリを簡単に作る方法!おすすめライブラリも紹介
- Pythonで自動化ツールを作れば効率化できることまとめ【未経験者必見!】
- マーケターがPythonを学ぶべき理由を解説!できることや仕事への活かし方が分かる!
- .Pro(ドットプロ)の特徴・強みまとめ|未経験からPythonエンジニアへの転職を目指す!
- 【Pythonの資格や勉強法を紹介】Pythonエンジニアを目指す人必見です!
































