Webから知りたい情報だけをサクッと収集したいあなたはこちらをどうぞ【PythonによるWebスクレイピング】

web scraping with python recommended book Python

 

最近、たくさんのWebページを毎日チェックしてるなぁ〜

ほしい情報はその中の一部分なんだけど、

もっと手軽に短時間でサクッとチェックできないかなぁ〜

なんて思われる方もおられるかもしれません。

 

Webの情報は毎日指数関数的に増えていて、それらの中から自分の欲しい情報を適切に短時間で集めてくるのは、どんどん難しくなっています。

 

また、自分がほしい情報自体の量も増えていて、1つ1つクリックしてみていては追いつかない状況になってきているのではないでしょうか?

 

そんなあなたのために、本記事では、情報収集を効率的に行い、ラクに自由な時間を増やせる技術「スクレイピング」についてご紹介します。

本記事の概要

Webの情報を、もっと手軽に、サクッとチェックできないかなぁ

 

情報洪水の中から、必要な情報だけを、ラクに・効率的に得られる「仕組み」って作れないんでしょうか?じつは、作れるんです!

 

そんな仕組みづくりのための技術が「スクレイピング」です。

 

毎日更新されるニュースの中から自分が知りたいものだけをピックアップしたい

興味あるWebサイトに関係する他のWebサイトを網羅的に調べたい

 

など、こういうことを行いたいあなたには、スクレイピングは必須の技術で、大必ず大きな助けになります。

え!ほんと!!

ほんとなんです!

とはいっても、

  • Webにある情報をどう扱ったらいいの?
  • JavaScriptやクッキーなどはどう使えばいいの?
  • WebスクレイピングとAPIって、どう違うの?

などさまざまな疑問もあるかと思います。そこで本記事では、Webスクレイピングとはなにか?ということから、じっさいに自分でスクレイピングを行うプログラムをサクッと作れるようになる1冊をご紹介します。

Webスクレイピングってなに?

 

「Webスクレイピング」とは、Webサーバにクエリを出してデータを得て、そこから必要な情報を抽出する一連のプロセスのことを指します。

 

Webスクレイピングには、別の呼び方もあります。

例えば、スクリーンスクレイピング、データマイニング、Webハーベスティングなどの呼び方もありました。現在ではWebスクレイピングという言い方がよく使われています。

ちなみに、Webスクレイピングを自動的に行うプログラムのことを「bot(ボット)」とも呼ぶので、覚えておくとよいかと思います。

 

なんだか難しそうだな〜

 

と思われた方もおられるかもしれません。

 

でもじつはこれは、私たちが普段、Webブラウザを通じてやっていることと全く同じなんです。

 

普段あなたはWebページを開いたら、興味あるリンクをクリックしながら情報を集めています。

このとき使っているWebブラウザは、あなたが指定した動作(この場合新しいリンク先のページを表示すること)を実現するために、リンク先の情報をもったWebサーバに要求を出し、表示するための情報を得て、それを調えてブラウザに表示します。

 

Webスクレイピングでは、これをWebブラウザを使わずに、自動的に行ってしまおうというわけです。

Webブラウザを使えばできるのに、なぜわざわざ使わないで行おうとするの?

と思われる方もおられるかもしれません。

 

Webブラウザを介すると、1つ1つクリックなどの動作が必要になります。もし大量のページの情報を得たい時にはこれでは時間がかかってしまいます。Webスクレイピングで行えば、Webブラウザを介しないので、大量のデータを処理する際にチカラを発揮するわけです。

 

Webのデータを集めるには他にも「API」を使う方法があります。

APIは便利ですが、そもそもAPIを作ってないサイトもありますし、複数のサイトをまたがって情報を集めたいときなど、共通のAPIがないこともあります。

また、APIには制限があることがあり、1日使える容量や回数、指定されたデータ型のみといった感じに、自分の自由に使えないこともあります。そういった時にも、自由にできるWebスクレイピングが役に立ちます。

 

Webスクレイピングって、具体的にはどう役立つの?

って思われるかもしれません。

考え方としては、あなたがいつも行っていることを、プログラミングすればいいのです。新聞社のサイトをみているなら新聞社のサイトのスクレイピングを行い、経済面だけ知りたいなら、そこから経済情報だけを取り出せばいいのです。

 

他にもたとえば、以下のような応用が考えられます

  • 様々なニュースを集めてきて分析することで、株価を予測する
  • Yahoo知恵袋やお悩みサイトの内容を精査することで、優秀なカウンセラーボットをつくる
  • 適切な医療情報を集めてくれば、医療診断を行うボットをつくる

 

このように、Webスクレイピングによって、様々な価値あるシステムを構築することができます。

 

Webスクレイピングは、どんな技術を使うの?

Webスクレイピングは、それが1つの技術というわけでなく、様々な技術を組み合わせて行う一連の作業をまとめて呼ぶ呼び方です。なのでWebスクレイピングを実現するには、いろいろな技術を使います。例えば、

  • Webサーバ、HTTP, HTML, インターネットセキュリティ

などの知識は欠かせません。また、

  • 収集したデータはデータベースに格納
  • 収集したデータをデータサイエンス技術で分析して新しい知見を発見
  • 画像であれば画像処理

など、これらを駆使することで、おもしろいアプリケーションが作れるかもしれません。

こういった技術はそれぞれに学べば学ぶほど深くなりますよね。本書ではこれらの詳細には立ち入らず、スクレイピングに使うという範囲でサクッとまとめられています。なので、より詳しく学びたいな!ちょっと物足りないって方は、それらの専門書を参照するとよりよいスクレイピングが実現できます。

 

でも、いざこれらを学ぶとなると、いろいろ本を調べたり大変ですよね〜

そこで、これらの技術がまとめて学べ、Webスクレイピングについて包括的に学べる1冊がこちらです。

本書はWebからほとんどの種類のデータを収集するためのスクレイピングの入門書です。プログラミング言語にはpythonを使用しており、基本の概要は示しますが、pythonについては他書で勉強する必要があります。

 

たとえば、「入門Python 3」などがおすすめです。

 

また、付録Cには、スクレイピングのケーススタディが列挙されているので、どのように使えるか、より具体的にイメージできるので、あなたのアイデアが実現可能かを検討するのにも役に立つはずです。

 

本書の構成は以下の通りです。

 

第1部 スクレイパーを作る

1章 最初のWebスクレイパー

1、つなげる

2、はじめてのBeautifulSoup

 

2章 高度なHTMLパーシング

1、いつもハンマーが必要なわけではない

2、BeautifulSoupの別の使い方

3、正規表現

4、正規表現とBeutifulSoup

5、属性へのアクセス

6、ラムダ式

7、BeautifulSoupを超えて

 

3章 クローリングを開始する

1、単一ドメインを走査する

2、サイト全体をクローリング

3、インターネットをクローリング

4、Scrapyでクローリング

 

4章 APIを使う

1、APIはどう働くか

2、共通表記

3、レスポンス

4、Echo Nest

5、Twitter

6、Google API

7、JSONをパースする

8、すべてをホームに集める

9、APIについてさらに学ぶ

 

5章 データを格納する

1、メディアファイル

2、データをCSVに格納する

3、MySQL

4、メール

 

6章 文書を読む

1、文書エンコーディング

2、テキスト

3、CSV

4、PDF

5、Microsoft Word と .docx

 

第2部 高度なスクレイピング

7章 汚れたデータをクリーニング

1、コードでのクリーニング

2、事実の後でクリーニング

 

8章 自然言語の読み書き

1、データを要約する

2、マルコフモデル

3、Natural Language Toolkit

4、追加の情報源

 

9章 フォームとログインでクロール

1、Pythonリクエストライブラリ

2、基本フォームをサブミットする

3、ラジオボタン、チェックボックス、その他入力

4、ファイルと画像のサブミット

5、ログインとクッキーを扱う

5、他のフォーム問題

 

10章 JavaScriptのスクレイピング

1、JavaScriptの簡単な紹介

2、Ajaxと動的HTML

3、リダイレクトの処理

4、JavaScriptについての最終ノート

 

11章 画像処理とテキスト認識

1、画像処理ライブラリ

2、きちんとフォーマットされたテキストの処理

3、CAPTCHAの読み込みとTesseractの訓練

4、CAPTCHAの獲得と解のサブミット

 

12章 スクレイピングの落とし穴を避ける

1、倫理についての注意

2、人間らしく見せる

3、共通フォームセキュリティ構造

4、人間らしく見せるためのチェックリスト

 

13章 Webサイトをスクレイパーでテストする

1、テスト入門

2、Pythonのunittest

3、Seleniumでテストする

4、unittest か Seleniumか?

 

14章 リモートでスクレイピング

1、なぜリモートサーバを使うか

2、Tor

3、リモートホスティング

4、追加の参考書

5、さらに進むために

付録A Python入門

A-1, インストールと{Hello, World!}

 

付録B インターネット入門

付録C Webスクレイピングの違法性と倫理

C-1, 商標、著作権、特許

C-2, 動産不法侵入

C-3, コンピュータ犯罪取締法

C-4, robots.txt とサービス規約

C-5, 3つのWeb スクレイパー

訳者あとがき

索引

 

となっています。

Webの情報をサクッと効率的に扱いたい!

情報洪水の中から、必要なモノだけ目にしたい!

など、忙しいあなたの時間を、もっと効率的にしてくれる「スクレイピング」について、サクッと入門させてくれる1冊となっています。おすすめです。

 

 

 

 

「クローリング」や「スクレイピング」についてはこちらもどうぞ↓

詳しくはこちらの記事にございます↓

「Python」で「クローリング」や「スクレイピング」の実践的な開発をしたいあなたはこちらをどうぞ

 

 

 

詳しくはこちらの記事にございます↓

「クローラー」作成や「スクレイピング」をやりたいあなたは、こちらはいかがでしょうか JavaScriptのスクレイピングもあります

 

 

 

詳しくはこちらの記事にございます↓

「R」で「 Webスクレイピング」や「テキストマイニング」をやりたいあなたへの実践ガイドはこちらです

 

 

 

他にこちらもございます↓

 

 

 

 

こちらの記事もございます↓

「クローリング」や「スクレイピング」を学びたいあなたにチェックしてほしい良書、9冊+α はこちらです

 

「HTML」や「XML」を「Python」で手軽に扱いたいあなた「BeautifulSoup」はいかがでしょうか

 

「XMLとは?」HTMLとの違いや、どう役に立つの?ってあなたはこちらをどうぞ