【问题标题】:Extract Text from javascript webpage从 javascript 网页中提取文本
【发布时间】:2018-04-03 15:53:59
【问题描述】:

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

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

【问题讨论】:

  • 您要查找的部分位于 iframe 内,因此您可能需要从 iframe 链接中提取。

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


【解决方案1】:

使用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() 

【讨论】:

    【解决方案2】:

    相信你已经做到了你所说的(很难确定没有代码示例)。

    以精确定位抓取该文本,从原始 URL 开始,找到该 iframe,然后找到带有该文本的 &lt;div&gt;

    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()
    

    【讨论】:

    • 谢谢,工作就像一种享受。在提取段落时非常有用。现在的想法是将其转移到一个单独的变量中,然后使用文本分析来提取信息。
    猜你喜欢
    • 2020-05-17
    • 2020-09-03
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多