使用R的rvest包爬取WTA网球评级页面JSON数据遇阻求助
解决R语言爬取WTA评级JSON数据的报错问题
你遇到的报错是因为直接将xml_nodeset类型的对象传给了fromJSON(),而该函数只接受JSON字符串、URL或文件路径作为输入。你已经定位到了目标script标签,但还需要先提取标签内的纯文本内容,再进行JSON解析。
修正后的代码
# 目标网页链接 link <- "https://www.wheeloratings.com/tennis_wta_ratings.html" # 读取网页内容 webpage2 <- read_html(link) # 提取第17个script标签的文本内容,再解析JSON imp3 <- webpage2 %>% html_elements("script") %>% .[17] %>% html_text() %>% # 关键步骤:提取标签内的纯文本 fromJSON()
关键说明
html_text()会把script标签包裹的JSON字符串提取出来,将xml_nodeset对象转换为符合fromJSON()要求的字符串格式- 执行完上述代码后,
imp3就会是解析后的JSON数据结构,你可以通过str(imp3)查看数据结构,进一步提取需要的WTA评级信息
内容的提问来源于stack exchange,提问作者Humberto R
相关产品推荐
相关产品推荐

