PythonでWebスクレイピング・クローリングを極めよう!(Scrapy・Selenium 編)
What you'll learn
- Python3のスクレイピング専用フレームワークScrapyの高度な機能を用いて、効率的にスクレイピング・クローリングができるようになります。
- Scrapyを用いて、複数のWebページを高速にクローリングし、目的の情報や画像を効率的に取得する方法を理解することができます。
- Scrapyを用いて、取得したデータを簡単にファイル出力したり、データベースへ保存する方法を理解することができます。
- Scrapy-Seleniumを利用した、JavaScriptを用いた動的なサイトへ対処する方法を理解することができます。
- Scrapyで作成したプログラムをクラウド上の環境へデプロイメントする方法を理解することができます。
- 開発や運用をスムーズに行えるよう、Scrapyの様々なデバッグ方法を学ぶことができます。
- スクレイピングに欠かせないXPath、CSSセレクタの利用方法を学ぶことができます。
- Beautifulsoup + Requestsを卒業し、より高度なスクレイピング・クローリング専用フレームワークScrapyを使いこなせるようになります。
- 実践的な演習問題を通じてScrapyの理解を深めることができます。
Requirements
- Pythonの基本的な文法を理解されている方を対象としています。もし受講の途中で知識の不足を感じるようでしたら、参考のリンクを掲載しておりますので、補足ください。
- 講師はWindowsの環境で解説しておりますが、Mac(M1/M2を除く)でも同様に進めていくことができます。
- スクレイピングが全くの未経験でも問題ありません。HTML、CSSの基本についても解説しております。
- 講師はAnacondaでのPython3環境を構築し、VS Codeを元に解説を進めております。AnacondaでのPython3の環境構築、VS Codeの使い方についての講義も提供しております。
Description
本コースは、Pythonのスクレイピング専用フレームワークScrapyを用いたWebスクレイピング・クローリングにより、データ収集のスキルを短期間で劇的に向上させることを目的としたコースになります。
今までのWebスクレイピングの方法では、BeautifulSoupやRequestsなど、複数のライブラリを継ぎはぎに組み合わせながら、多くのコーディングを行う必要がありました。この結果、スクレイピングの学習や作業に非常に多くの時間を費やし、せっかく取得したデータの活用に割ける時間が奪われてしまっていました。
しかしスクレイピング専用のフレームワークであるScrapyの登場により、これは劇的に変わりました。フレームワークとは、全体の処理の流れがある程度、事前に組み込まれているソフトウェアの基盤になります。従って、面倒な多くのことはフレームワーク自体が行ってくれて、これによりデータの取得が容易になり、効率的に行うことができるようになりました。
別のページへのリンクのたどり方や、どのデータを取得するかなど、最低限必要なコーディングだけを行えばよくなりました。さらに1つのフレームワークで実現するので、一貫性が保たれ、非常に高速にデータを取得することができます。
これにより効率的にWebサイトからデータを取得することができ、データ取得の本来の目的であるデータの活用に、より多くの時間を割くことができるようになります。
このコースでは、このPythonのスクレイピング専用フレームワークScrapyの使い方を、徹底的に解説していきます。
【このコースで扱うトピック】
このコースでは、実際の様々なWebサイトを例にスクレイピングを行い、データを取得していきます。しかし、人によってスクレイピングしたいサイトは異なりますし、サイトも日々変化していきます。
このコースの基本的なコンセプトとして、これらの変化にも柔軟に対応し、他のWebサイトにも応用できるよう、スクレイピングにおいてポイントとなる箇所と対応方法をできるだけ幅広く解説しながら進めていきます。
このコースで扱うトピックは、これらのものになります。
1. スクレイピングの一連のプロセスをカバーします。
Webサイトから必要なデータを取得・抽出する方法、そして、取得したデータをきれいに整形したり、ファイルやデータベースに保存する方法を学びます。
2. スクレイピングに関する幅広いスキルが身に付くよう、レクチャーを提供します。
リンクをたどり、複数のWebページを巡回する方法
JavaScriptを用いた動的なサイトへの対処、ログイン画面への対処
テキスト情報・画像ファイルの取得方法
3. Scrapyで開発したプログラムを安定的に運用できるスキルが身に付くよう、レクチャーを提供します。
開発環境の構築、開発方法だけでなく、クラウド上の環境で実行できるようにしたり、デバッグ方法についても、詳しく解説していきます。
Who this course is for:
- Webスクレイピングをビジネスや副業、趣味に活用されたい方
- Webスクレイピングに興味があるが、始め方がわからない方
- 基礎固めが終わってさらに高度なWebスクレイピングの方法を学びたい方
- Webサイトから効率的にデータを取得する方法を学習されたい方
Instructor
清水 義孝 (しみず・よしたか)
データサイエンティスト
1973年生まれ。
大学卒業後は、大手IT企業でシステムエンジニアとして、数々のデータウェアハウス、データ分析基盤の導入に携わる。その中で、データ分析に興味を持ち始め、データ分析には、ITの知識、スキルだけでなく、ビジネスに関する深い知識やスキルが必要だと感じる。
論理・仮説思考力、統計・定量分析、プレゼンなどのスキル、ファイナンス・マーケティングなどのビジネスの知識を習得すべく、海外のビジネススクールに通いMBA(経営学修士)取得。
現在、大手製造業でデータサイエンティストとして、ビックデータの分析に携わっている。またその経験を活かしデータ収集・分析、BIツールに関する社内講座を担当。講座を通じて、のべ1000名以上に教育を提供している。
Webスクレイピング、データ分析、プログラミングに関して、初心者に役立つ情報を発信すべく、2018年よりWebサイト「Pythonで学ぶデータ分析・AI・機械学習」の運営を始める。訪問者数は毎月15万名を超え、大好評となった。
著書に『Python最速データ収集術 〜スクレイピングでWeb情報を自動で集める (IT×仕事術) 』(技術評論社)などがある。