我想从下面获取href的信息。
http://www.mitbbs.com/bbsdoc1/USANews_101_0.html
我更喜欢从这个
这样的话题中得到一些东西/USANews/31587637.html
/USANews/31587633.html
/USANews/31587631.html
...
代码在下面使用,但它不起作用。
library("XML")
library("httr")
library("stringr")
data <- list()
for( i in 101:201){
url <- paste('bbsdoc1/USANews_', i, '_0.html', sep='')
html <- content(GET("http://www.mitbbs.com/", path = url),as = 'parsed')
url.list <- xpathSApply(html, "//td[@align='left' height=26]/[@class='news1' href]", xmlAttrs)
data <- rbind(data, url.list)
}
您的建议真的很有用!
答案 0 :(得分:2)
你应该研究一下rvest包,它简化了很多事情
library(rvest); library(dplyr)
myList <- read_html("http://www.mitbbs.com/bbsdoc1/USANews_101_0.html") %>%
html_nodes(".news1") %>% xml_attr("href")
mtList
myList %>% gsub("/article_t", "", .)
答案 1 :(得分:1)
检索文件
library(XML)
html = htmlParse("http://www.mitbbs.com/bbsdoc1/USANews_101_0.html")
并使用适当的xpath查询提取您感兴趣的链接和文本
href = "//a[./@class='news1']/@href"
text = "//a[./@class='news1']/text()"
df = data.frame(
url=sub("article_t/", "", sapply(html[href], as.character)),
text=trimws(sapply(html[text], xmlValue)))
trimws()
是R的最新版本中的函数。