首页 > 解决方案 > 我正在尝试抓取 Moderna/pfizer 网站,以查看他们发布新闻的日期。R中的代码给出输出字符(0)而不是日期

问题描述

这是我为 pfizer 和 Moderna 运行的代码(使用的包:'rvest')

辉瑞:

scrape_url <-“http://www.pfizer.com/news”

网页 <- read_html(scrape_url)

pfizer_newsdates_html <- html_nodes(网页,'.rssDate')

pfizer_newsdates <- html_text(pfizer_newsdates_html)

负责人(辉瑞_新闻日期)


对于现代——

scrape_url2 <-“https://investors.modernatx.com/news-releases”

网页2 <- read_html(scrape_url)

Moderna_newsdates_html <- html_nodes(网页,'.nir-widget--news--date-time')

Moderna_newsdates <- html_text(moderna_newsdates_html)

头(moderna_newsdates)

标签: htmldatescreen-scrapingrscript

解决方案


对于辉瑞,使用正确的类。对于 Moderna,需要使用 httr 作为用户代理标头

library(rvest)
library(magrittr)
library(httr)
library(stringr)

moderna_dates <- read_html(httr::GET('https://investors.modernatx.com/news-releases', add_headers("User-Agent" = "Mozilla/5.0"))) %>% 
  html_nodes('.nir-widget--news--date-time') %>% html_text() %>% str_squish()

pfizer_dates <- read_html('https://www.pfizer.com/news') %>% 
  html_nodes('.views-field-field-press-release-date') %>% html_text()

推荐阅读