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

时间:2020-01-31 01:02:08

标签: r rvest

我正在尝试创建一个抓取程序,以获取有关冠状病毒病例数的更新,并且我正在使用以下页面。

当我给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>

1 个答案:

答案 0 :(得分:1)

如@Marius所述,您可以从加载的JSON文件中获取数据。我从开发人员工具中获得了url,以文本形式读取了html并得到了跟着"confirm"的数字。

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