2016-11-14 3 views
0

Существует ряд проекций фантазии NBA, которые я хотел бы улучшить в более оптимизированном подходе. В настоящее время я использую комбинацию функции importhtml в листах google и простой архаичной палитре.Web Scraping NBA Fantasy Projections - R

Я регулярно пользуюсь R, чтобы очистить другие данные из Интернета, однако мне не удается заставить эти таблицы царапать. Таблицы У меня возникли проблемы с расположены в трех отдельных адресов (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 - я получаю заголовки таблицы, но не содержание таблицы.

projectionions3 - Я получаю заголовки таблицы, но не содержимое таблицы.


Если кто-нибудь может указать мне в правильном направлении, было бы весьма полезно.

ответ

0

содержание таблицы генерируется JavaScript, поэтому readHTMLTable и read_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]) 

прогнозы3: источник с видом Линия 918

+0

Ничего себе, теперь это круто. Я, честно говоря, раньше не знал об источнике. – Morts81

+0

Хотя, я не знаю, как очистить от источника веб-сайта, не могли бы вы дать мне некоторое руководство о том, как это сделать? – Morts81

+0

Код python для вашей справки –

 Смежные вопросы

  • Нет связанных вопросов^_^