2017-09-04 15 views
0

httrXMLをRで使用してウェブサイトから情報をスクラップする方法を学習しています。テーブル数が少ないウェブサイトでうまく機能するようになっていますが、いくつかのテーブルを持つウェブサイトのために。一例として、プロフットボール参照から以下のページを使用する:https://www.pro-football-reference.com/boxscores/201609110atl.htmR:URLに複数のテーブルをスクラップする

# To get just the boxscore by quarter, which is the first table: 
URL = "https://www.pro-football-reference.com/boxscores/201609080den.htm" 
URL = GET(URL) 
SnapTable = readHTMLTable(rawToChar(URL$content), stringAsFactors=F)[[1]] 

# Return the number of tables: 
AllTables = readHTMLTable(rawToChar(URL$content), stringAsFactors=F) 
length(AllTables) 
[1] 2 

だから私は情報をこすりすることができるよ、しかし、何らかの理由で私は上の20+のうち、上位2つのテーブルをキャプチャすることができますページ。練習のために、私は "スターター"テーブルと "公式"テーブルを取得しようとしています。

他のテーブルをウェブサイトの設定や不正なコードの問題にすることはできませんか?

答えて

0

Rのウェブスクレイピングになると、パッケージrvestを集中的に使用します。

htmlの管理はちょうどいいですが、rvestはCSSセレクタを使用しています。SelectorGadgetは、特定のテーブルのスタイリングでパターンが見つかるのを助けます。したがって、偶然の代わりに探しているテーブルを正確に抽出することができます

詳細は、rvestのvignetteをお読みください。

#install.packages("rvest") 
library(rvest) 
library(magrittr) 

# Store web url 
fb_url = "https://www.pro-football-reference.com/boxscores/201609080den.htm" 

linescore = fb_url %>% 
    read_html() %>% 
    html_node(xpath = '//*[@id="content"]/div[3]/table') %>% 
    html_table() 

これが役に立ちます。

関連する問題