我的代码如下。它分为3个不同的新闻页面并提取其内容。但对于每个页面,我必须搜索不同的自定义html标记。
html_nodes like ("#main*")
或html_nodes like ("*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);
答案 0 :(得分:1)
鉴于
html <- '
<div class="pain">A</div>
<div class="pain">B</div>
<div class="mainer">C</div>
<div class="emainer">D</div>'
你可以做例如
# 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>