誰でも出来るExcelによるWebスクレイピング

大学の時に研究していたビックデータ解析などの手法を思い出すためにまとめてみます。私は文系でプログラミング等は新米ですのでお手柔らかにお願いします。

今回は、Python ではなく誰でも簡単にできるExcelのWebクエリを使ったスクレイピングの手法を紹介します。

特に学生さんとかで論文作る際にデータが必要だけどプログラミングわからない方などにオススメです!

初めに

本教材は、以下の環境以外では演習できない可能性があります。

OS : Winsows 10 
Excel: MS Excel 2013 ~
ブラウザ: IE

スクレイピングをする上での注意

Webスクレイピングは、作権侵害の犯罪になる可能性があります。
有名なのは2010年3月、愛知県にある岡崎市立図書館の蔵書検索システムにアクセス障害が発生し、その利用者の一人が逮捕された事件です。

・スクレイピングの頻度が高く、相手に対する負荷をかける
・スクレイピングにより取得した情報を不正に使用する
・著作権の侵害

この辺りは注意しないといけません。

Webサイトへアクセスする時は下記の制限を守りましょう。

・サーバアクセスの間隔を5秒以上空けるようにする。 
・利用規約がある場合はその規約を必ず守る。
・robots.txt/robotsメタタグのアクセス制限内容を守る。
・Pragma:No-cacheメタタグが設定されているページはダウンロードしない。
・rel=”nofollow”が設定されているリンクはクローラーで辿らない。 
・情報収集を禁止する措置(アクセス制限など)がクローリング時に取られていた場合は、既に取得していた情報を含めて削除する。

※robot.txtとはクローラーに対する指示書です。
参考:著作権法第47条

ウェブサイトの利用規約に違反する場合
著作権法上はOKでも、ウェブサイト上の利用規約で、「スクレイピング禁止」と記載されている場合には、問題が生じます。

スクレイピングした結果の譲渡
取得情報を複製した物の譲渡スクレイピングによって取得した情報を他人に譲渡することは、著作権法上禁じられています。

対象サイトの禁止事項を確認

例えばWEARさんの利用規約を見てみましょう。

スクリーンショット 2020-01-05 18.38.21

目的外利用情報解析
目的以外の目的で利用した場合には、著作権法に違反することになります。

著作権法第47条第7項(情報解析のための複製等)
・著作物は、電子計算機による情報解析を行うことを目的とする場合には、必要と認められる限度において、記録媒体への記録又は翻案を行うことができる。
・ただし、情報解析を行う者の用に供するために作成されたデータベースの著作物については、この限りではない。

Webスクレイピングの対象コンテンツは下記のものに限る。

文章(DBのコンテンツの場合はコンテンツ の一部のみに留めておく) 
画像(同上)
音声(パブリックドメイン等のオープンなライセンスの物に限る)
映像(同上)

参考:著作権法第30条・著作権法第47条 第7項

Webスクレイピングしたデータの公開する時

加工(例:集計、分析)したデータ
→許可を取る必要はない。

サイト固有のデータ
→ 当該サイトの管理者に許可を取る必要がある。

個人が特定されるデータ
→扱ってはNG

著作権等も絡んでくるので法律に詳しい人に相談してね(それしか言えない)

早速Excelでスクレイピングしてみましょう。

ExcelのWebクエリという機能を使います。
今回は、東京都の人口推移をスクレイピングしてみましょう。

スクリーンショット 2020-01-05 18.55.56

① 新規Excelを開く(ファイル名:Webクエリ)
② 「データ」→「新しいクエリ」→「その他のデータ ソースから」→「Webクエリ」の順でクリック
③URLアドレス欄に、https://www.city.shibuya.tokyo.jp/kusei/tokei/jinko/nenbetu.html を入力してOKボタンを押してください。

画像4

④ 「年別住民登録人口推移(省略)」を選択して、「読み込み」ボタンをクリック

スクリーンショット 2020-01-05 19.04.14

簡単にデータを取得できましたね。
定期更新にすることもできます。

① 「接続」アイコンをクリックします。
②「プロパティ」をクリック
③ 1時間ごとに更新する場合は「60」と 入力,最大999分設定可能

スクリーンショット 2020-01-05 19.10.54

注意点

以下のようなサイト等では、Webクエリではスクレイピングできません。
別途Pythonなどでプログラミング等する必要があります。

• アクションを要するページ
• Ajax等でページ遷移を多用しているようなサイト
• 構成が複雑すぎるページ

Ajaxとは?わかりやすいサイトがあったので紹介します。

こんな感じでしょうか。
ちょっと古い情報かもしれません・・・

誰でもプログラミングなしでWebから情報とってこられますね!
次は何書こうかな・・・・

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