2017-03-20 11 views
0

私はhttp://www.sports-reference.com/cbb/schools/duke/2010.htmlから6番目(または "アドバンス")のテーブルを取得しようとしています。スポーツページから掻き出しテーブル - AdBlock干渉

htmltabまたはXMLを使用すると、intergerリファレンス(つまり、1番目のテーブルは1、2番目は2など)またはXPathを使用してテーブル1〜3をスクレイプできました。私はテーブル4,5、または6を同じ方法で削ってはいけません。

library(htmltab) 
url <- "http://www.sports-reference.com/cbb/schools/duke/2010.html" 
duketable1 <- htmltab(doc = url, which = 1) #Using number 
duketable1 <- htmltab(doc = url, which = "//*[@id='all_roster']") #Using XPath 

同じフレームワークを使用してテーブル6(または4と5)をスクラップできません。 XMLと同じ

duketable6 <- htmltab(doc = url, which = 6) 
duketable6 <- htmltab(doc = url, which = "//*[@id='all_advanced']") 

(最初の3つのテーブルを読み込む)

library(XML) 
url <- "http://www.sports-reference.com/cbb/schools/duke/2010.html" 
tables <- readHTMLTable(url) 
names(tables) 

私の最高の推測では、<div class="adblock">ある何かに影響を与えるが、私はどのようにそれを回避するには考えていますさ。事前に任意のヒントをありがとう。

答えて

3

あなたがソースコードを見てみると(クロームにすなわちview-source:http://www.sports-reference.com/cbb/schools/duke/2010.html) あなただけのこのコメントを置き換え、後者のテーブルは<!--

を通じてコメントしていることを確認し、あなたがそれらを読むことができます。

List of 6 
$ :'data.frame': 13 obs. of 5 variables: 
$ :'data.frame': 4 obs. of 25 variables: 
$ :'data.frame': 13 obs. of 23 variables: 
$ :'data.frame': 13 obs. of 25 variables: 
$ :'data.frame': 13 obs. of 23 variables: 
$ :'data.frame': 13 obs. of 27 variables: 
で使用 rvest

require(httr) 
require(rvest) 

doc <- GET("http://www.sports-reference.com/cbb/schools/duke/2010.html") 
content(doc, "text") %>% 
    gsub(pattern = "<!--\n", "", ., fixed = TRUE) %>% 
    read_html %>% 
    html_nodes(".table_outer_container table") %>% 
    html_table 

追加%>% str(max.level = 1)結果

関連する問題