【问题标题】:html_nodes return an empty list for complex tablehtml_nodes 返回复杂表的空列表
【发布时间】:2021-01-09 00:53:54
【问题描述】:

我想对以下网站中的表格进行网络抓取:https://www.timeshighereducation.com/world-university-rankings/2021/world-ranking#!/page/0/length/25/sort_by/rank/sort_order/asc/cols/stats 我正在使用以下代码,但它不起作用,提前谢谢你。

library(rvest)
library(xml2)
library(dplyr)
link <- "https://www.timeshighereducation.com/world-university-rankings/2021/world-ranking#!/page/0/length/25/sort_by/rank/sort_order/asc/cols/stats"
page<- read_html(link)


rank<- page %>% html_nodes(".sorting_2") %>% html_text()
university<-page %>% html_nodes(".ranking-institution-title ") %>% html_text() 
statistics<-page %>% html_nodes(".stats") %>% html_text() 

【问题讨论】:

标签: r rvest


【解决方案1】:

本网站的Terms and Services 声明:“出于任何目的使用数据挖掘、机器人、蜘蛛、抓取或类似的自动数据收集、提取或发布工具。”

话虽如此,你可以阅读@QHarr 找到的 json 文件:

library(jsonlite)
url <- "https://www.timeshighereducation.com/sites/default/files/the_data_rankings/world_university_rankings_2021_0__fa224219a267a5b9c4287386a97c70ea.json"
x <- read_json(url, simplifyVector = TRUE)
head(x$data) # give you the data frame with universities

现在你有一个结构良好的 R 列表。 $data 元素包含一个数据框,其中包含每行大学的统计信息。其他 3 个列表元素仅提供补充信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    相关资源
    最近更新 更多