【2020】おすすめガジェット、Webサービス、アニメなど>>

【R】Rを使ってCSSをスクレイピングしてみる【CSSの説明あり】

2020 5/25
【R】Rを使ってCSSをスクレイピングしてみる【CSSの説明あり】

Rを使ってHTMLドキュメントのスクレイピングする【DOMの説明あり】の記事で、HTMLの要素を抽出していきました。

今回はCSSからの抽出です。

CSSの基本的な説明もあるので、復習も兼ねて、読んでください。

目次

スクレイピングするサイト

石田基広さんのサイトを使います。一度、ご覧ください。

>>>今回スクレイピングするサイト

「Rによるスクレイピング入門」という本を参考にさせていただきます。

サイト自体は、めっちゃシンプルですよね。石田基広さんのサイトは、スクレイピングをする際に、とても勉強となります。

今回使うパッケージ

パッケージ名説明
rvestWebページから情報を抽出する作業を簡単にしてくれる
dplyrデータフレームを簡単に操作できる(パイプ演算子を使う)
magrittrオブジェクトの一部の抽出または置換(パイプ演算子を使う)

CSSとは?

CSSは、HTMLと組み合わせて使用する言語です。

HTMLがウェブページ内の各要素を装飾することができます。

今回スクレイピングするサイトでいうと、文字に色がつけられていいますよね。

その色をつけているのが、CSSです。

HTMLソースコードを表示する

CSSはHTMLと組み合わせて、使われます。

それは、HTMLソースコードを表示すれば、どのようなCSSが使われているか見ることができます。

CSSが他のファイルに書いてある場合もあります。HTMLソースコード内に、CSSが表記されていないこともあります。

HTMLソースコードを表示する方法はå

【右クリック】→【ページのソースを表示】

で表示することができます。

他のブラウザを利用している場合でも、同じような感じでいけます。

HTMLドキュメントとHTMLソースコード

左HTMLドキュメント
右HTMLソースコード

css
css

CSSの基本

CSSを抽出する際には、CSSセレクタというものを知っておく必要があります。

まず、CSSは基本このように、表記されます。

セレクタ{プロパティ:値;}

セレクタスタイルを適用する対象を決める
プロパティどのスタイル(プロパティ、今回でいうとcolorプロパティ)を適用するのか
どんな内容を適用させるのか?

p.green { color: green;}

p.greenというセレクタは、p要素にclass属性を定義していて、colorプロパティを使い、greenという内容を適用させています。

p#red { color: red;}

p#redというセレクタには、p要素にid属性を指定して、colorプロパティを使い、redという内容を適用させています。

HTMLドキュメントをDOMにして読み込む

左HTMLドキュメント
右HTMLソースコード

css
css

HTMLでスクレイピングするときと同様に、HTMLドキュメントを読み込みする必要があります。

library(rvest)
library(magrittr)
library(dplyr)

rvestread_htmlを使って、DOMという構造にしていきます。

test2 <-read_html("https://IshidaMotohiro.github.io/sample_check/simple2.html")
test2 

{xml_document}

<html>

[1]<head>\n<meta http-equiv=”Content-Type” content=”text/html; charset=U …

[2] <body>\n <div>\n <p>pタグ</p>\n </div>\n <p class=”green”>classを使 .

この結果となります。DOMを知っていれば、なんとなくわかりますよね。

クラスを抽出

test2 %>% html_nodes(css = ".green") 
test2

{xml_nodeset (1)}

1]<p class=”green”>classを使った例</p>

html_nodesでノードを指定しています。今回指定したのは、greenクラスです。

test2 %>% html_nodes(css = ".green") 
test2
test2 %>% html_nodes(css = ".green") %>% html_text()

このようにすると、テキスト部分を抽出することができます。

IDを抽出

test2 %>% html_nodes(css = "#red")

{xml_nodeset (1)}

[1] <p id=”red”>idを使った例</p>

この結果になります。#redでid「red」を抽出してます。

test2 %>% html_nodes(css = "#red") %>% html_text()

1] “idを使った例”

テキスト部分も抽出することができます。

まとめ

  • CSSはHTMLと組み合わせて使う
  • class、idを指定して、要素を抽出することが出来る

R言語を学んでいきたい場合は「Udemy 」を使うのもおすすめです。以上Rを使ってCSSをスクレイピングしてみるという話でした。

参考文献

この記事が気に入ったら
いいね または フォローしてね!

プロフィール背景画像
さぎのみやの画像
さぎのみや
編集者/超書手

コメント

コメントする

CAPTCHA


目次
閉じる