2016-11-14 4 views
0

NBA Fantasy Projectionsは、より合理化されたアプローチで取り組んでいます。現在、私はGoogleシートと簡単な古風cut'n'pasteでimporthtml関数の組み合わせを使用しています。ウェブスクレイピングNBA Fantasy Projections - R

私は定期的にインターネットから他のデータを掻き集めるためにRを使いますが、これらのテーブルを掻き集めることはできません。私は3つの別々のアドレス(ページあたり1台)に位置しているとのトラブルを抱えていたテーブルには、彼らは以下のとおりです。

1)すべてのためにhttp://www.sportsline.com/nba/player-projections/player-stats/all-players/

2)https://swishanalytics.com/optimus/nba/daily-fantasy-projections

3)http://www.sportingcharts.com/nba/dfs-projections/

私はパッケージrvestとxmlを使用して私の他の掻爬活動。同じプロセスに続いて、私は両方の方法を試してみましたが、その結果、出力が表示されます。私はこれがウェブサイト上のテーブルのフォーマットと関係があると確信していますが、私は私を助けることができるものを見つけることができませんでした。


方法1

library(XML) 
projections1 <- readHTMLTable("http://www.sportsline.com/nba/player-projections/player-stats/all-players/") 
projections2 <- readHTMLTable("https://swishanalytics.com/optimus/nba/daily-fantasy-projections") 
projections3 <- readHTMLTable("http://www.sportingcharts.com/nba/dfs-projections/") 

出力

projections1  
named list() 

projections2 
named list() 
Warning message: 
XML content does not seem to be XML: 'https://swishanalytics.com/optimus/nba/daily-fantasy-projections' 

projections3 - 私は、テーブルのヘッダではなく、テーブルの内容を取得します。

方法2

library(rvest) 
URL <- "http://www.sportsline.com/nba/player-projections/player-stats/all-players/" 
projections1 <- URL %>% 
    read_html %>% 
    html_nodes("table") %>% 
    html_table(trim=TRUE,fill=TRUE) 

URL <- "https://swishanalytics.com/optimus/nba/daily-fantasy-projections" 
projections2 <- URL %>% 
    read_html %>% 
    html_nodes("table") %>% 
    html_table(trim=TRUE,fill=TRUE) 

URL <- "http://www.sportingcharts.com/nba/dfs-projections/" 
projections3 <- URL %>% 
    read_html %>% 
    html_nodes("table") %>% 
    html_table(trim=TRUE,fill=TRUE) 

出力

projections1  
list() 

projections2 - 私は、テーブルのヘッダではなく、テーブルの内容を取得します。

projections3 - 私はテーブルのヘッダーを取得しますが、テーブルのコンテンツは取得しません。


誰かが正しい方向に私を指し示すことができたら、それは非常に感謝します。

答えて

0

テーブルの内容はJavaScriptによって生成されるので、readHTMLTableread_html何を見つけていない、あなたは

projections1、以下のような表を見つけることができます。link

import requests 
url = 'http://www.sportsline.com/sportsline-web/service/v1/playerProjections?league=nba&position=all-players&sourceType=FD&game=&page=PS&offset=0&max=25&orderField=&optimal=false&release2Ver=true&auth=3' 
r = requests.get(url) 
print r.json() 

projections2:ビューソース:https://swishanalytics.com/optimus/nba/daily-fantasy-projectionsライン1181

import requests 
url = 'https://swishanalytics.com/optimus/nba/daily-fantasy-projections' 
r = requests.get(url) 
text = r.content 
print eval(text.split('this.players = ')[1].split(';')[0]) 

projections3:view-source Line 918

+0

うわー、今それはクールです。正直なところ、ビューソースについては知らなかった。 – Morts81

+0

ウェブサイトのソースからどうやってスクラップするのか分かりませんが、これをどうやってやっていくのか指示できますか? – Morts81

+0

参照用のPythonコード –

関連する問題