【问题标题】:Simple webscraping issue- rvest简单的网页抓取问题 - rvest
【发布时间】:2023-03-22 18:04:01
【问题描述】:

我正在尝试在“https://stats.premierlacrosseleague.com/pll-team-table”上抓取数据表。我已经尝试了多种不同的方法来实现这一点,并最终得到相同的结果,即我的表是空的?有没有人有任何解决方案?我在下面发布了我的代码,在此先感谢!

library(rvest)

pll <- read_html("https://stats.premierlacrosseleague.com/pll-team-table")

table<- pll%>%html_nodes(".jss820")%>%html_text()

data_table<- data.frame(table)

【问题讨论】:

    标签: r web-scraping rvest


    【解决方案1】:

    不幸的是,这种方式的抓取是行不通的,因为数据是动态加载的;页面加载后。如果您右键单击该页面,单击“检查元素”,转到“网络”选项卡,然后刷新页面,您可以看到正在发出的 XHR 请求。

    其中一个请求是发送至https://api.stats.premierlacrosseleague.com/v1.00/teams-stats/all/2020,其中包含您想要的表格,采用 JSON 格式。下面的代码使用jsonlite 读取该表(在R 中提供嵌套的list)并使用unnest_wider 将其转换为data.frame

    library(tidyverse)
    library(jsonlite)
    
    url <- "https://api.stats.premierlacrosseleague.com/v1.00/teams-stats/all/2020"
    data_list <- jsonlite::read_json(url)
    
    data_table <- tibble(data = data_list) %>% 
      unnest_wider(data)
    

    这给了

    # A tibble: 7 x 55
      scores faceoffPct shotPct twoPointShotPct twoPointShotsOn… clearPct ridesPct savePct shortHandedPct
       <int>      <dbl>   <dbl>           <dbl>            <dbl>    <dbl>    <dbl>   <dbl>          <int>
    1     20      0.488   0.339           0.5               3.83    0.9     0        0.644              0
    2     21      0.490   0.230           0.6               1.93    0.961   0.12     0.588              0
    3     16      0.452   0.238           0.5               1.75    0.98    0.0769   0.623              0
    4     25      0.667   0.293           0.545             2.73    0.932   0.0196   0.591              0
    5     28      0.333   0.184           0.6               1.52    0.940   0.0263   0.559              0
    6     17      0.523   0.239           0.8               4.2     0.935   0.0755   0.545              0
    7     13      0.696   0.351           0.571             2.43    1       0.0870   0.682              0
    # … with 46 more variables
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2017-09-11
      • 2020-07-18
      • 2019-02-17
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      相关资源
      最近更新 更多