237 Views
April 16, 25
スライド概要
[第11回大阪sas勉強会]
SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです
Rでデータハンターになろ う 第11回大阪SAS勉強会 Zhang Li 2025.4.16
目次 • 1、ウェブスクレイピングについて • 2、ウェブスクレイピングって違法か? • 3、ウェブスクレイピング可能サイト見分け • 4、Rvestパッケージ • 5、R簡単実装例1、2 • 6、Pythonとの比較 • 7、まとめ • 8、おしまい
ウェブスクレイピングとは • ウェブスクレイピング(Web Scraping) ウェブサイトから情報を抽出するIT技術のこと。 通常このようなソフトウェアプログラムは低レベルのHTTPを実装することで、もしくはウェブブ ラウザを埋め込むことによって、WWWのコンテンツを取得する。 ウェブスクレイピングはユーザーが手動で行なうこともできるが、一般的にはボットやクローラ (英: Web crawler)を利用した自動化プロセスを指す。 ↑from Wikipedia ※最近では、機械学習の材料集めにWebスクレイピングが 行われることも増えており、スクレイピングという言葉も 一般に認知されるようになってきました。
ウェブスクレイピング違法? • Webスクレイピングの対象はWebサイトに掲載されている情報です。 基本的にはWebサイト側が公開しなければ参照できない情報となり、 Webサイトを検索して参照しているのと同等の行為のため、スクレ イピングによる情報の収集自体には違法性はありません。 • 関わる法律:著作権法、刑法、民法 • 注意事項: ①Webサイトの利用規約に違反する(利用規約で触れている場合は 違反になる) ②サーバに過度の負荷をかける(アクセス不能になり業務妨害にあ たる) ③著作権を侵害する(抽出したデータを無断で公開・販売するな ど)
ウェブスクレイピング可能サイト見分け 利用規約やrobots.txtファイルなどの確認すると、WPがあまり歓迎されないのが殆どです。 ※検索キーワード:スクレイピング(scraping or scrap)、クロール(crawling)など ※例、https://example.com/robots.txtでも確認できるが、見方は優しくなく、お勧めしない 禁止:Amazon、X(Twitter)、Youtubeなど 可能:Wikipedia、Tabelogなど
R簡単実装例1:テキストデータ取得 ウェブページを読み取り ノード情報を読み取り データ(テキスト、テーブ ルなど)を読み取り
R簡単実装例1:Wikiデータ取得(結果) Web表示 スクレイピングした結果
Rvestパッケージの関数 Name Function Sample read_html() ウェブページやHTML文字列を読み込み、解析済み read_html("https://example.com") のHTMLドキュメントオブジェクトを作成する。 html_nodes() HTMLドキュメントから指定したCSSセレクタや XPathに基づいてノード(要素)を抽出する。 html_node() html_nodes()と似ているが、最初にマッチしたノー html_node(doc, "h1") ドのみを返す。 html_text() 抽出されたノードからテキスト内容を取得する。 html_text(node) html_attrs() ノードのすべての属性を名前と値のペアで取得す る。 html_attrs(node) html_table() HTMLテーブルをデータフレーム形式で抽出する。 html_table(node) html_nodes(doc, "div.class") ※ウェブページのノードやタグなど情報を確認するには、右クリックで「ページのソースを表示」をクリックする
R簡単実装例2:テーブルデータ取得 html_table() 関数でYahooから大阪の週間天気を取ってみよう。
Pythonとの比較 R言語(Rvest) Python 構文 パイプ演算子、簡潔 汎用、複雑 パッケージ 少ない(Rvest,Rcurl) 豊富(Scrapy,Selenium) ドキュメント 少ない、統計関連 豊富 パフォーマンス 小規模 大規模、マルチスレッド処理 ユーザー IT開発者、データエンジニア データサイエンティスト、統計er
まとめ:展開と注意事項 • 応用展開 - テキストやTableデータの取得を簡単例で紹介した。もう少しPGMを工夫して、例えば、定期的に データを取得し、ある程度ボリュームなデータを蓄積してからの解析は可能となる - 他に臨床研究にどこまで応用できるかに関しては、今のところはんーーーって感じ • 注意事項 - 利用規約の確認 許可されないのが殆どですが、商用せずや自己研究の場合はウェブスクレイピングしても良いか - 著作権などの法律の遵守 - ウェブスクレイピング実行時、サーバーに過度の負荷をかけらないこと ※もし何方か不正利用で夜中にパトロールさんが玄関に来たら、本スライドと私は一切責任を負いませんね。
おしまい ご清聴ありがとうございました!