Python Webスクレイピング

Python学習【365日チャレンジ!】335日目のマスターU(@Udemy11)です。

最近テレビで放映された「記憶にございません」を途中から見ていたのですが、最初のほうのストーリーが気になって、Amazonプライムでチェックしたら、結局最後まで見てしまいました。

ダメダメな史上最悪の総理大臣が、不満を抱く国民から投げつけられた石が頭にあたって記憶をなくしてしまうわけですが、記憶をなくしたことによって、それまでのしがらみから開放されて、国民のことをきちんと考える政治家として、日本の政治を変えていくという話です。

ほんと今の日本の政治をなんとかしろよというテレビ局からのメッセージかというタイミングの放映だったので、視聴率は高かったんじゃないでしょうか?

この状態で成人式も実施されているので、間違いなく数週間後にはたくさんの新成人が新型コロナの感染者になっているでしょう。

集まる機会を与えれば、飲み会をせずに帰れと言われても帰るわけもなく、久しぶりに集まった友人たちと酒を酌み交わしながら楽しく過ごすに決まっているわけですよね。

どうせ誰も聞いていない役人の挨拶としたくもない成人代表の挨拶を誰かがさせられるだけの式典なんだから、なぜ思い切って中止にするくらいの政治判断ができないのでしょうか?

とりあえず、自分のことは自分で守るしかないので、マスクと手洗いうがいを徹底して、極力出歩かないように気を付けましょう。

それでは今日も、Python学習を始めましょう。

昨日の復習

昨日は、GoogleスプレッドシートにGoogleサジェストを抽出する方法を紹介しました。

今日から、Webスクレイピングの実践に入っていきますが、うまくいかなかったことも含めて紹介していくので、すべてのコードがきちんと動く保証はできませんので、ご了承ください。

まずは、Webスクレイピングについて復習も兼ねてチェックしてみましょう

BeautifulSoup

Pythonのライブラリには、Webスクレイピングのためのライブラリが用意されていますが、代表的な3つのライブラリを紹介していきます。

まずは、超有名なBeautifulSoupです。

BeautifulSoupは、HTML、XMLからデータを抽出できるPythonのスクレイピングには欠かすことのできないライブラリです。

ただ、単体では、スクレイピングをすることができず、requestsなどのHTTP通信ができるライブラリやCSVに書き出すライブラリと一緒に使うのが一般的です。

非常に使用頻度の高いライブラリなので、Webスクレイピングをするのなら、まずはBeautifulSoupをマスターする必要があります。

Selenium

Seleniumは、ブラウザの操作を自動化してくれるライブラリで、基本は、UIのテストを自動化するのが目的で開発されたのですが、ブラウザを自動で操作できるので、Webサイトをクローリングすることでスクレイピングに活用するのが一般的な使い方として定着しています。

Seleniumについては、下記の記事で学習しました。

Scrapy

Scrapyは、Webをクロールするクローラーを使うための機能を持ったライブラリで、Webスクレイピングを目的に開発されました。

提供されるAPIを活用して、Webスクレイピングでデータを抽出したり、単にクローラーとして使うこともできます。

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

Webスクレイピングは、Webサイトの情報を抜き出すので、サイトへのアクセスを繰り返すため、サーバーへの負担が大きくなります。

サイトへのアクセスが集中して負荷が高くなると、サーバーはDOS攻撃と判断して、アクセスを遮断されたり、負荷に耐えられず、サーバーがダウンしてしまうことが考えられます。

アクセスする間隔を開けたり、負荷のかからないようなスクレイピングを心がけて、コードを書くようにしましょう。

まとめ

Webスクレイピングのためのライブラリを紹介しましたが、すでに学習したライブラリもあります。

これまでは、ちらっと学習しただけですので、これからは具体的な使い方をマスターするために多くの実践が必要になります。

実践なので、途中でわからなくなったり、間違ったコードを書いてしまうこともありますが、そのあたりはご了承ください。

それでは、明日もGood Python!