R新闻网站的网页抓取:如何抓取主要内容
我有下面的代码。它会转到3个不同的新闻页面并提取它们的内容。但是对于每个页面,我必须搜索不同的定制html标记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
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>