webスクレイピングを知識0から始めて習得するまで①【スクレイピングとは、学習方法、Scrapyの概要、データ取得の3ステップ、Scrapyのメリット】

2022/1/8 【1日目】

データ分析コンペである程度pythonのコードとかpandasとか使うのに慣れたので、ずっとやりたかったwebスクレイピングを1から勉強していきます。

webスクレイピングができるようになったらやりたいことは、webからTiborの履歴をとってきて、チャートを表示できるサイトを作りたい。データ分析で勉強したpandasとかmatplotも使うことになると思うから丁度いい。

具体的には、全銀協のサイトから履歴を取得して、チャートに変換し表示したい。なぜかというと、株価とか長期金利のチャートを載せているサイトはいくらでもあるのに、Tiborのチャートはいくら探してもないから作っちゃおうと思って。

あともう1つ作りたいwebサービスがあるけど、それは今後書いていく。

スクレイピングとは

webページからダウンロードしてきたhtmlデータを解析し、タグとかを除いた必要なデータだけを抽出する作業。この抽出作業のことをスクレイピングという。

学習方法

Udemyのこの講座で勉強していく。スクレイピングの講座はたくさんあるけど、評価が一番高いのとなんか良さげなScrapyを教えてくれるから。内容は↓こんな感じ。

Python3のスクレイピング専用フレームワークScrapyを用いて、より高度で効率的なスクレイピング・クローリング方法を短期間で習得します。旧式のBeautifulSoupから卒業し、より高度なスクレイピング・クローリングを実現しよう!!

Scrapyの概要

Scrapy とは Python でクローラーを実装するためのフレームワークです
Python でクローラーというと BeautifulSoup や lxml などの HTML パーサーがよく使われていますが、 Scrapy はこれらのライブラリと違うレイヤーのもので、クローラーのアプリケーション全体を実装するためのフレームワークです
公式ドキュメントでも、BeautifulSoup と Scrapy を比較するのは、jinja2 と Django を比較しているようなものだと言ってます

ちょっとよくわからない。とにかく、Scrapyはpythonライブラリではなくフレームワークらしい。

Pythonフレームワークを利用することで、開発の速度を大幅にアップすることができます。フレームワークには使用頻度の高い機能が最初から用意されているため、それらの機能をフレームワークから呼び出すだけで、最低限の機能がそろうようになっています。そのため、フレームワークを使用せずに開発を行うよりも、開発にかかる時間を削減することができます。

やっぱりなんかよさそう。

データ取得の3ステップ

①webページのダウンロード:webページのリンクを辿ってwebページ(html)をダウンロードするだけの作業。最初にアクセスするURLの指定、リンクのたどり方の指定はコーディングが必要。ダウンロードはScrapyがやってくれる。
②データの抽出:htmlデータを解析し、タグとかを除いた必要なデータだけを抽出する作業。この作業をスクレイピングという。必要なデータの抽出方法の指定はコーディングが必要。抽出はScrapyがやってくれる。
③データの保存:csvファイル等への出力はScrapyがやってくれる。。

これらの3ステップがページの数だけ必要になる。①と②のコードをSpiderクラスに書けば良いらしい。

Scrapyのメリット

いままではダウンロードはrequest、データの抽出はbeautifulsoopなど、異なるライブラリが必要だったけど、Scrapyでは単独でそれらを遥かに上回る機能がある。3ステップを全て1つでカバーしてくれる。


「Codes&Co.」「コーズコー」


この記事が気に入ったらサポートをしてみませんか?