【R】初心者向けRでWebスクレイピングする方法

      2016/10/20

Webサイトからほしい情報だけを抽出する技術のことをウェブスクレイピングと言います。

ウェブスクレイピング(Web scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。ウェブ・クローラー(Web crawler) あるいはウェブ・スパイダー(Web spider)とも呼ばれる。

ウェブスクレイピング - Wikipedia

今回は、Rでウェブスクレイピングを試してみました。

RstudioのWikipediaからテキスト情報をスクレイピングしてみます。

2015 02 24 pic1

RCurlとXMLパッケージを使う方法

Rコードは以下のようになります。

> #パッケージをインストール
> library(XML)
> library(RCurl)
> 
> # 読み取りたいWebサイト
> # RstudioのWikiページ
> url <- "http://en.wikipedia.org/wiki/RStudio"
> 
> # ほしい情報のXPath.
> targetXPath <- "//p"
> 
> #Webサイトを読み込み
> doc <- getURL(url)

> #HTML解析(HTMLをパースする)
> doc <- htmlParse(doc)

> #パースしたオブジェクトからXPathで文章のみを抽出
> #第3引数でxmlValueと指定してタグを削除する
> body <- xpathSApply(doc, targetXPath, xmlValue)
> 
> #空っぽの5,6番目の要素を削除
> body <- body[1:4]
> 
> #bodyの表示
> body
[1] "RStudio is a free and open source integrated development environment (IDE) for R, a programming language for statistical computing and graphics."                                                                                                                                                                                                     
[2] "RStudio is available in two editions: RStudio Desktop, where the program is run locally as a regular desktop application; and RStudio Server, which allows accessing RStudio using a web browser while it is running on a remote Linux server. Prepackaged distributions of RStudio Desktop are available for Microsoft Windows, Mac OS X, and Linux."
[3] "RStudio is written in the C++ programming language and uses the Qt framework for its graphical user interface.[1]"                                                                                                                                                                                                                                    
[4] "Work on RStudio started at around December 2010 [1], and the first public BETA version (v0.92) was officially announced in February 2011 [2]." 

Webサイトを解析するにはHTMLとXpathの知識が必要です。

これらを勉強するうえでは以下が参考になります。

rvestパッケージを使う方法(もっと簡単)

RでのWebスクレイピング調べてたらもっと簡単な方法を発見しました。

library(rvest)
rstudio <- html("http://en.wikipedia.org/wiki/RStudio")
> rstudio%>%
+   html_nodes(xpath = "//p")%>%
+   .[1:4]%>%
+   html_text()
[1] "RStudio is a free and open source integrated development environment (IDE) for R, a programming language for statistical computing and graphics."                                                                                                                                                                                                     
[2] "RStudio is available in two editions: RStudio Desktop, where the program is run locally as a regular desktop application; and RStudio Server, which allows accessing RStudio using a web browser while it is running on a remote Linux server. Prepackaged distributions of RStudio Desktop are available for Microsoft Windows, Mac OS X, and Linux."
[3] "RStudio is written in the C++ programming language and uses the Qt framework for its graphical user interface.[1]"                                                                                                                                                                                                                                    
[4] "Work on RStudio started at around December 2010 [1], and the first public BETA version (v0.92) was officially announced in February 2011 [2]."  

今度はもう少し高度なことにも挑戦したいと思います。

参考

おすすめ記事

1
2016年買って良かったモノを紹介します!

2016年もあとわずか。毎年恒例の買って良かったモノシリーズ、2016年版を紹介 ...

2
英語ができなかった僕がバイリンガルになるまでの5つの英語上達プロセス

英語ができなかった僕がバイリンガルと呼ばれるようになるまでに経験した過程を5つに分けて紹介します。

 - 統計学