从javascript网页

时间:2017-10-23 07:04:45

标签: javascript r web-scraping html-parsing rvest

我想用R从网站中提取一些文字。我无法使用Rvest访问文本。我感兴趣的领域是“主要投资策略”部分如果我可以提取该部分,我可以使用Grep进一步分析文本。但是,以可提取的格式获得该部分证明是一项挑战。

该网站的链接如下:http://quote.morningstar.com/etf-filing/Summary-Prospectus/2017/8/28/t.aspx?t=AGG&ft=497K&d=c6995d020ec0f1b3592873780a199bd1

2 个答案:

答案 0 :(得分:0)

使用rvest提取该部分的完整文本(iframe),也许您可​​以使用正则表达式或标记生成器从文本中提取所需的部分:

link <- 'http://quote.morningstar.com/etf-filing/Summary-Prospectus/2017/8/28/t.aspx?t=AGG&ft=497K&d=c6995d020ec0f1b3592873780a199bd1'
library(rvest)
library(magrittr)
link  %>%
  read_html() %>%
  html_nodes("iframe") %>%
  extract(4) %>%
  html_attr("src") %>% 
  read_html() %>%
  html_text() 

答案 1 :(得分:0)

坚信你已经完成了你的所作所为(没有代码样本很难确定)。

从原始网址开始,使用精确定位抓取该文字,然后找到iframe,然后找到包含该文字的<div>

library(rvest)

read_html("http://quote.morningstar.com/etf-filing/Summary-Prospectus/2017/8/28/t.aspx?t=AGG&ft=497K&d=c6995d020ec0f1b3592873780a199bd1") %>% 
  html_node("iframe.sec_frame") %>% 
  html_attr("src") %>% 
  read_html() -> pg

html_node(pg, xpath=".//div[contains(., 'Principal Investment Strategies
')]") %>% 
  html_text()