第15回全国高等学校情報教育研究会全国大会(オンライン大会)

高校生がWeb上のデータをスクレイピングするWebAPIの提案

四天王寺大学 本多佑希先生

「データ分析」でデータを扱う難しさ~全員が同じデータで教員のマネすることからどう脱却する?

※クリックすると拡大します。

第12回全国高等学校情報教育研究会全国大会(和歌山大会)より
第12回全国高等学校情報教育研究会全国大会(和歌山大会)より

 

今回は、高校生がWeb上のデータをスクレイピングするWeb APIの提案について発表します。

 

「情報Ⅰ」が新設されて、情報教育が大きく変わってきていますが、その中で「データ分析」は一つの柱になっています。これは大学教育も同様で、データ分析、データサイエンスがこれまでよりも重視されるようになりました。ただ、先生方もご承知のようにデータサイエンスを教えるのはなかなか難しい部分があります。というのは、データ分析は理系っぽい内容であっても、数学のようにイコールで答えが結びつくものではない部分が、どうしても出てくるからですね。

 

データ分析の教育の流れをまとめたのが下図です。やはり最初は、先生が何かしらの分析の方法をやって見せて、生徒がまねをするというのが基本になると思います。

 

このとき、皆が同じデータを使うというのが一般的だと思います。この教育手法は、もう既に多くの先生方がやっておられる内容ですし、全員が同じことをするので、やってみた結果がおかしかったり、操作がわからなくなったりということが起こったとしても、周りでできている生徒が教えてあげたり、生徒同士が教え合ったりすることもやり易く、授業の運営がし易いということがあります。

 

ただ、やはりデータ分析は自分で実践できる能力というものが非常に重要であると思います。本当であれば、学んだ手法を使って、皆が自分で取得したデータを自由自在に分析できるようになってほしい、という思いはあっても、それにはやはり難しい部分があるというのが現状でしょう。

 

 

Web上のデータを統一的に形を整えてスクレイピングするソフトの開発

 

それを実現可能にするのが、今回ご紹介するWebスクレイピングAPIです。Web上には、いろいろ有用なデータがあります。例えば、私は現在大阪府の羽曳野市に住んでいますが、この辺りには古墳がたくさんあって、羽曳野市は古墳の一覧のデータをWeb上で公開しています(※)。こういった表形式のデータを研究で分析して使いたいという場面は多いのではないかと思います。

 

古市古墳群一覧表

 

こういったとき、一般的にはWebスクレイピングが使われるのですが、これを生徒にやらせるのは難しい、というのが現状だと思います。生徒一人ひとりデータを手打ちさせるのは現実的ではありませんし、最近の機能であれば、Excelにそのままコピペできる場合もありまいすが、それができないデータもあります。

 

 

ですので、今私たちはWebページをスクレイピングする場合に、URL指定すれば、Webページに載っている表データの列や行を自動で認識してくれるソフトウェアの開発を進めています。こういったシステムを使えば、生徒がそれぞれネット上でオープンデータを探してきて、「このデータを使って分析したら、こんなことが分かるかもしれない」と考えて、生徒自身が分析を実践するという活動ができるようになるのではないかと考えています。

 

Webページに載っている表は、データの形式がhtmlのテーブルだったり、PDFだったり、csvだったりとバラバラなので、コピペしてExcelなどに貼り付けても、新しいシートが作れないものがあります。また、数値の桁数がバラバラだったり、単位が付いていなかったり、ということもまちまちです。そういったデータを統一的に形を整えてスクレイピングをする、これはデータクレンジングとも言いますが、生徒が自分で取って来たデータについて、そういった処理を一人ひとりやらせるのは、どうしても難しい面があります。

 

※クリックすると拡大します。

 

現在開発しているツールは、ウェブ上に公開されてる様々な形式のデータを一括で変換して、そこから表を抽出して、ある程度形を整えることができます。例えば、日付一つとっても、「何月何日」「何年何月何日」「2022/08/10」といろいろな表示のしかたがありますが、そういったものを統一的な形に整えて、それをデータとして提供するという、Webスクレイピングのプロキシのようなことを行う機能も搭載します。

 

※クリックすると拡大します。

 

スクレイピングの結果は、画面上で確認することができます。問題なく使えそうなことを目視で確認してから、プログラムで使用することになります。

 

 

スクレイピングしたデータを分析につなげられる機能も視野に入れて

 

大学の授業で、このシステムを実際に使ってみました。大学生にWeb上の表を探して来させて、それをこのシステムにかけてスクレイピングが正しくできるかどうかをやらせてみたところ、73名の学生の中で、全く切り出せなかった人が1人だけいましたが、それ以外の学生は「正しく切り出せた」「ある程度はうまくいった」と答えており、スクレイピングをある程度できるデータを見つけてくることができているのかな、というところでした。

 

 

今後は、このシステムを使って高校生でもスクレイピングが可能なのかを検証していきたいと思います。やはりスクレイピングをしたものを分析につなげることができることが大事であると思うので、そういったことも含めて検証を進めていきたいと思います。

 

また、開発をある程度進めて、ぜひ一般公開として先生がたに広く使っていただけるように、今後も開発を進めていきたいと考えています。

 

 

[質疑応答]

 

Q1.授業だけでなく、校務でも使えそうだと思いましたがいかがでしょうか。

 

A1.本多先生

確かに校務で使う、ということもできますね。プログラミングに精通している方であれば、こういったことはSQLコマンドをたたいてクレンジングをして…ということはやられると思いますが、教育利用以外の場面でもWeb上のデータを活用したい、というニーズはあるかもしれませんので、幅広く使っていただけるのではないかと思います。ただ、念頭に置いているのは、授業の場面で使えることで、教育利用を目標に開発を進めています。

 

Q2.実際にどのような授業で使われたのか、教えてください。

 

A2.本多先生

この授業は、実際は私の元指導教員の先生にやっていただいたのですが、非常に楽しい授業でした。例えば、マンガの発行部数のランキングを見つけて来た学生がいたのですが、10位までは順位の部分が画像データになっていて、11位からが数字データになっているので、画像になっている部分については全てスクレイピングは正しくできていない。ここはどうしても仕方ない部分なのですが、何でこれが読み取れないんだろう、ということを考えることも含めて、いろいろ楽しい部分がありました。

 

やはり皆が違うことをやっている、というのは面白い部分があって、「そのデータ、面白いね。どこから取ってきたの」とか、普段は教えられたことまでしかやらない学生が、他の人が楽しそうにやっているのを見て、もっと面白いデータを探してみようかな、となってくれるのは、皆が違うことをする学習の、良いところの一つなのかなと感じています。

 

今回の授業では、データ分析の授業の一環として、「世の中にどんなデータがあるのか探してみよう」というところまで行いました。ですので、このツールにかけることで、ネット上にあるデータが正しく読み取れることまでは確認していますが、そこから先の、スクレイピングしたデータを使ってそれぞれ分析をするところまでは行っていません。

 

ですので、この授業では、ウェブ上にいろんなデータがあるということをまず知ってもらって、それをプログラムから取り込むという視点があるところまでを意識させるのが、今回の授業で実践することを確認することができました。また、システム的に問題なく使えそうであるという判断を下すこともできました。

 

第15回全国高等学校情報教育研究会全国大会(オンライン大会) ポスター発表より