R新闻网站的网页抓取:如何抓取主要内容

R新闻网站的网页抓取:如何抓取主要内容,r,web-scraping,R,Web Scraping,我有下面的代码。它会转到3个不同的新闻页面并提取它们的内容。但是对于每个页面,我必须搜索不同的定制html标记 有没有办法通过搜索从任何新闻页面获取信息 只有一个标签?这将使我能够从许多人那里搜集信息 页数 如何搜索符合特定条件的标记:for 示例html_节点(如(“#main*”)或html_节点(如(“*main*”) library(MASS)#base R library(XML) library(xml2) library(rvest) # R web scraping

我有下面的代码。它会转到3个不同的新闻页面并提取它们的内容。但是对于每个页面,我必须搜索不同的定制html标记

  • 有没有办法通过搜索从任何新闻页面获取信息 只有一个标签?这将使我能够从许多人那里搜集信息 页数
  • 如何搜索符合特定条件的标记:for 示例
    html_节点(如(“#main*”)
    html_节点(如(“*main*”)
  • library(MASS)#base R

    library(XML)
    library(xml2)
    library(rvest)    # R web scraping
    
    
        # get the page using rvest fcns
        page2 <- read_html("http://seekingalpha.com/article/3974491-3-things-will-save-intels-future");
    
          page.all2 <- page2 %>%
          html_nodes("#main_container") %>%
          #html_nodes(class="*main*") %>%
          html_text()
         page.all2
    
        page5 <- read_html("http://www.fool.com/investing/general/2016/05/09/intel-corporations-strange-choice.aspx");
        page.all5 <- page5 %>%
          html_nodes("#article-1") %>%
          html_text()
          page.all5
    
        page1 <- read_html("http://www.valuewalk.com/2016/05/intel-no-2-explains-company-headed/ ");
        page.all1 <- page1 %>%
          html_nodes("#main") %>%
          html_text()
        page.all1
    
        # get a URL (1 URL per row in column link);
    
    库(XML)
    库(xml2)
    图书馆(rvest)#R网页刮取
    #使用rvest fcns获取页面
    第2页%
    #html_节点(class=“*main*”)%>%
    html_text()
    第2页
    第5页%
    html_text()
    第5页
    第1页%
    html_text()
    第1页
    #获取URL(列链接中每行1个URL);
    
    给定

    html <- '
    <div class="pain">A</div>
    <div class="pain">B</div>
    <div class="mainer">C</div>
    <div class="emainer">D</div>'
    
    html%xml_节点(xpath=“//*[@class='pain']”)
    #{xml_nodeset(2)}
    #[1]A
    #[2]B
    #所有DIV标记,其中类名以“main”开头
    read_html(html)%>%xml_节点(xpath=“//div[以(@class,'main')]开头)
    #{xml_nodeset(1)}
    #[1]C
    #所有DIV标记,其中类名包含“main”
    read_html(html)%>%xml_节点(xpath=“//div[contains(@class,'main')]”)
    #{xml_nodeset(2)}
    #[1]C
    #[2]D
    
    这回答了我的第二个问题。1号怎么样?我有数千个页面,我无法在每个页面上搜索正确的html标记…是否有
    通用html标记
    可以返回所有页面的页面内容?不,没有“univsersal html标记”。FWIW,您可以通过
    read\u html(html)%%>%html\u text
    获得整个内容。是否有办法复制变量中
    read\u html(html)%%>%xml\u节点(xpath=“/*[@class='pain']”)的内容/输出?
    read\u html(html)%%>%xml\u节点(xpath=“/*[@class='pain']”%>%html\myvariable
    )有效。但是,有可能在我上面展示的代码中演示如何使用它吗?我尝试了
    read_html(page2)%%>%xml_节点(xpath=“/*[@class=”#main_container'])%%>%html_text->myvariable
    ,但在您同意不使用的所有3个站点中,都出现了错误“没有适用于类为“c('xml_文档','xml_节点')”的对象的“read xml”方法”“……使用任何机器人、蜘蛛、网站搜索/检索应用程序或其他手动或自动设备或流程下载、检索、索引“数据挖掘”、“刮取”、“收获”,或以任何方式复制或规避网站或其内容的导航结构或呈现方式;“;“…从我们的内容中创建摘要或删减内容,”;“本网站上的任何其他用途,包括任何形式的复制或复制……都是严格禁止的,并侵犯了我们的所有权。”(只是因为你可以这样做并不意味着你必须这样做)
    # all tags of class 'pain'
    read_html(html) %>% xml_nodes(xpath="//*[@class='pain']")
    # {xml_nodeset (2)}
    # [1] <div class="pain">A</div>
    # [2] <div class="pain">B</div>
    
    # All DIV tags, where class names start with 'main'
    read_html(html) %>% xml_nodes(xpath="//div[starts-with(@class, 'main')]")
    # {xml_nodeset (1)}
    # [1] <div class="mainer">C</div>
    
    # All DIV tags, where class names contain 'main'
    read_html(html) %>% xml_nodes(xpath="//div[contains(@class, 'main')]")
    # {xml_nodeset (2)}
    # [1] <div class="mainer">C</div>
    # [2] <div class="emainer">D</div>