2021年4月12日UdemyでR言語について学ぶ>>複雑なHTMLサイトから、スクレイピングするのは大変です。普通に、意味わかんないサイトがあります。そこで簡単なHTMLで構成されたサイトから、スクレイピングしてみます。目次スクレイピングするサイト石田基広さんのサイトを使います。>>>今回スクレイピングするサイト「Rによるスクレイピング入門」という本を参考にさせていただきます。サイト自体は、めっちゃシンプルですよね。スクレイピングの勉強となります。オブジェクトの一部の抽出または置換(パイプ演算子を使う)DOMを理解するサイト内のURLを取得したい!テキスト部分を取得したい!と考えても、HTMLドキュメント(サイトにアクセスして表示されるもの)のまま、Rで読み込むことはできません。htmlドキュメントをツリー構造にした「DOM」というものから、スクレイピングします。HTMLドキュメント▼DOM▼スクレイピングこのような流れとなります。大事な部分なので、「DOM」について見ていきます。DOMはHTMLドキュメントのツリー構造化したものDOMはHTMLドキュメントの要素をツリー構造化したものです。上の図をご覧ください。ツリー構造のようになっているのがなんとなくわかりますよね。【html】という木に【head】という枝があり、その枝から【title】という枝が存在している。【html】という木に【body】という枝があり、その枝から【h1】【a】という枝が存在している。【html】は【head】の親要素、【head】は【html】の子要素のように、親子関係で言われることもあります。要素をノードというもう一度、先ほどの図をご覧ください。DOMでは、HTMLドキュメント内の要素をノードいいます。【html】【body】【title】【a】【h1】すべて、ノードと言います。兄弟姉妹ノードなどノードによって名前は違いますが、説明を省きます(今回は重要ではない)HTMLドキュメントをDOMにして読み込むDOMの説明が長くなりましたが、HTMLドキュメントを読み込んでいきます。先にパッケージを読み込んでいきます。library(rvest)library(dplyr)library(magrittr)read_html()でDOMという構造にしていきます。read_html(“https://ishidamotohiro.github.io/sample_check/simple.html”)test▼のような結果になります。...<html>という木に<head>、<body>という枝があるようなことがわかれば、大丈夫。DOMにできれば、要素を抽出することが可能になります。<h1>大見出し</h1>という結果になります。html_nodes()でh1ノードを指定しています。これによって、h1要素全体を取り出すことが可能です。"大見出し"という結果になります。h1要素の中の要素(テキスト)の部分を、抽出したということですね。リンクのURLの取り出しURLを取り出します。"_blank"html_nodes()でa要素を抽出して、html_attrs()でURLを取り出しています。"http://rmecab.jp"この結果となります。hrefという属性の値を抽出することが出来ます。href="http://www.okadajp.org/RWiki/">という結果になります。html_node()で指定したノードが出てくる、最初の要素を抽出します。番号指定して属性の値を抽出1番目に出てくるURLを抽出、2番目に出てくるURLを抽出など、決めることができます。magrittrパッケージのextract()を使います。extract(1)"http://www.okadajp.org/RWiki/"この結果になります。html_nodesでa要素を抽出して、URLを取り出し、その一番目を表示といった感じです。extract(1)→extract(2)にすれば、二番目のURLを抽出することができます。まとめスクレイピングにはDOMを使うノードを使って、抽出する%>%演算子を使うと、わかりやすいUdemyでR言語について学ぶこともできます。以上Rを使ってHTMLドキュメントのスクレイピングするという話でした。こちらではプログラミング言語【R】を使って、様々なことをしていきます。Rを勉強にしている人に、参考にしていただければ嬉しいです。鷺ノ宮らび「Unishar-ユニシャー」編集長ゲーム開発を手助けするメディア「Unishar-ユニシャー」の編集長です。「Rabbishar-ラビシャー」の運営もしています。【事例あり】裁断済の本をメルカリ・ラクマで売るときに気をつけるべきこと【まとめ】クリエイター向け。