使用rvest获得冠状病毒确诊病例数

使用rvest获得冠状病毒确诊病例数,r,rvest,R,Rvest,我正在尝试创建一个刮板,以获取有关冠状病毒病例数的更新,我正在使用下面的页面 当我给xpath指定确认案例的数量时,它显示“0”,而不是我检查Google Chrome的开发工具时在页面上显示的真实数字。有人知道这里出了什么问题吗 library(rvest) response = read_html('https://news.qq.com/zt2020/page/feiyan.htm', encoding = 'GBK') response %>% html_node(xpat

我正在尝试创建一个刮板,以获取有关冠状病毒病例数的更新,我正在使用下面的页面

当我给xpath指定确认案例的数量时,它显示“0”,而不是我检查Google Chrome的开发工具时在页面上显示的真实数字。有人知道这里出了什么问题吗

library(rvest)

response = read_html('https://news.qq.com/zt2020/page/feiyan.htm', encoding = 'GBK')

response %>%
  html_node(xpath = '//*[@id="charts"]/div[3]/div[1]')

{html_node}
<div class="icbar confirm">
[1] <div class="number">0</div>
[2] <div class="text">全国确诊</div>
库(rvest)
response=read\u html('https://news.qq.com/zt2020/page/feiyan.htm,编码='GBK')
响应%>%
html_节点(xpath='/*[@id=“charts”]/div[3]/div[1]')
{html_node}
[1] 0
[2] 全国确诊

正如@Marius提到的,您可以从加载的JSON文件中获取数据。我从开发者工具中获得了
url
,将html作为文本读取,并获得数字,数字后面跟着
“confirm”

url%
读取html()%>%
html_text()%>%
stringr::str_match('confirm.*?(\\d+))%%>%.[2]>%as.integer()
#[1] 9731

数据可能正在使用Javascript动态加载。当我使用开发工具查看正在下载哪些文件(Firefox开发工具中的网络选项卡,不确定Chrome)时,我看到一个名为
disease\u h5
的JSON文件似乎包含数字,您可能可以直接获取该JSON数据。
url <- 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=jQuery34108850961227842673_1580448523488&_=1580448523489'

library(rvest)
url %>% 
  read_html() %>%
  html_text() %>%
  stringr::str_match('confirm.*?(\\d+)') %>% .[,2] %>% as.integer()

#[1] 9731