我是 R 新手,目前正在从事一项涉及网络抓取的作业。
我应该阅读此网页中的所有句子:https://www.cs.columbia.edu/~hgs/audio/harvard.html
这是我当前的代码:
library(xml2)
library(rvest)
url <- 'https://www.cs.columbia.edu/~hgs/audio/harvard.html'
read_html(url)
sentences <- url %>%
html_nodes("li") %>%
html_text()
Run Code Online (Sandbox Code Playgroud)
每次我运行它时,我都会收到此错误:
UseMethod("xml_find_all") 中的错误:没有适用于“xml_find_all”的方法应用于类“character”的对象
你能帮我么?我不明白我做错了什么。
我想从此链接中提取带有 rvest 的电子邮件 但是有一个 javascript 屏蔽了 mailto href
我该如何改进以下代码?
uni<- c("https://uni-tuebingen.de/fakultaeten/philosophische-fakultaet/fachbereiche/asien-orient-wissenschaften/indologie/mitarbeiter/")
r<-read_html(uni)
a <- r %>%
html_nodes("a") %>%
html_attrs() %>%
as.character() %>%
str_subset("mailto:") %>%
str_remove("mailto:")
Run Code Online (Sandbox Code Playgroud)
提前致谢
在进行网页抓取时,我一直试图在地图功能中包含进度条。
首先,我收集所有链接,几秒钟内就可以得到结果。
library(rvest)
library(dplyr)
library(stringr)
library(purrr)
news_america_mg_01 <- paste0("https://www.americamineiro.com.br/paginas/page/",
seq(from = 1, to = 4)) %>%
map(. %>%
read_html() %>%
html_nodes(".gdlr-blog-title a") %>%
html_attr("href") %>%
as.data.frame())
Run Code Online (Sandbox Code Playgroud)
其次,这是我想要包含进度条的地方,我提取从网站收集的链接的信息。
news_america_mg_02 <- news_america_mg_01 %>%
map(. %>%
#Title
mutate(title = map_chr(., ~ read_html(.x) %>%
html_node("h1.gdlr-blog-title.entry-title") %>%
html_text()),
#Date
data = map_chr(., ~ read_html(.x) %>%
html_node(".gdlr-info .updated a") %>%
html_text()),
#Text
text = map_chr(., ~ read_html(.x) %>%
html_node(".size-large+ p") %>%
html_text())))
Run Code Online (Sandbox Code Playgroud)
提前致谢!!
在使用R(rvest)进行网页抓取时,我需要将XPATH值定义为html_nodes中的变量。这样我就可以遍历许多XPATH。当我在外部定义XPATH时,它会引发错误(例如,当xpath = // * [@ id =“ banner”]时会出现错误)。能否请你帮忙。我的代码:
xpath <- as.character('//*[@id="title-overview-widget"]')
name <- lego %>%
html_nodes(xpath) %>%
html_text()
Error Message : Error in tokenize(css) : Unexpected character '/' found at position 1
Run Code Online (Sandbox Code Playgroud) 我想使用R中的URL保存HTML文件。我试图分别在网站的URL上使用GET和的read_html功能httr和rvest程序包保存响应对象,然后在HTML上保存HTML。但这并不能保存网站的实际内容。
url = "https://facebook.com"
get_object = httr::GET(url); save(get_object, "file.html")
html_object = rvest::read_html(url); save(html_object, "file.html")
Run Code Online (Sandbox Code Playgroud)
这些方法都无法将实际网站的正确输出(即.html文件中的网页HTML内容)保存到HTML文件中。
我正在尝试使用包中的read_html函数rvest,但遇到了我正在努力解决的问题.
例如,如果我试图阅读此页面上显示的底部表格,我将使用以下代码:
library(rvest)
html_content <- read_html("https://projects.fivethirtyeight.com/2016-election-forecast/washington/#now")
Run Code Online (Sandbox Code Playgroud)
通过检查浏览器中的HTML代码,我可以看到我想要的内容包含在<table>标记中(具体来说,它都包含在内<table class="t-calc">).但是当我尝试使用以下方法提取时:
tables <- html_nodes(html_content, xpath = '//table')
Run Code Online (Sandbox Code Playgroud)
我检索以下内容:
> tables
{xml_nodeset (4)}
[1] <table class="tippingpointroi unexpanded">\n <tbody>\n <tr data-state="FL" class=" "> ...
[2] <table class="tippingpointroi unexpanded">\n <tbody>\n <tr data-state="NV" class=" "> ...
[3] <table class="scenarios">\n <tbody/>\n <tr data-id="1">\n <td class="description">El ...
[4] <table class="t-desktop t-polls">\n <thead>\n <tr class="th-row">\n <th class="t ...
Run Code Online (Sandbox Code Playgroud)
其中包括页面上的一些表格元素,但不包括我感兴趣的表格元素.
关于我哪里出错的任何建议都将非常感谢!
我正在尝试从需要提交表单的网站上抓取结果,为此,我正在使用rvest软件包。
运行以下命令后,代码将失败:
require("rvest")
require(dplyr)
require(XML)
BasicURL <- "http://www.blm.mx/es/tiendas.php"
QForm <- html_form(read_html(BasicURL))[[1]]
Values <- set_values(QForm, txt_5 = 11850, drp_1="-1")
Session <- html_session(BasicURL)
submit_form(session = Session,form = Values)
Run Code Online (Sandbox Code Playgroud)
错误:找不到可能的提交目标。
我认为可能是因为rvest找不到要提交的标准按钮目标。是否有必要指定要寻找的标签或按钮?
任何帮助,不胜感激
嗨,我想从premierleague网站上提取表格.
我使用的rvest包是 包,我在初始阶段使用的代码如下:
library(rvest)
library(magrittr)
premierleague <- read_html("https://fantasy.premierleague.com/a/entry/767830/history")
premierleague %>% html_nodes("ism-table")
Run Code Online (Sandbox Code Playgroud)
我找不到一个可以解压缩html_nodesfor rvest包的html标签.
我使用类似的方法从" http://admissions.calpoly.edu/prospective/profile.html "中提取数据,我能够提取数据.我用于calpoly的代码如下:
library(rvest)
library(magrittr)
CPadmissions <- read_html("http://admissions.calpoly.edu/prospective/profile.html")
CPadmissions %>% html_nodes("table") %>%
.[[1]] %>%
html_table()
Run Code Online (Sandbox Code Playgroud)
通过以下链接从youtube获取上述代码:https://www.youtube.com/watch?v = gSbuwYdNYLM&ab_channel = EvanO%27Brien
任何有关从fantasy.premierleague.com获取数据的帮助都非常感谢.我需要使用某种API吗?
卢旺达合作社有一个数据库; 它有大约155页我想访问的数据(没有滚动整个网站).我在使用rvestR中的包识别正确的xpath或css时遇到问题.我也使用该selector gadget工具来帮助识别正确的节点.
我的问题是我收到一个'字符(0)'表示我没有抓取正确的数据.
url <- 'http://www.rca.gov.rw/wemis/registration/all.php?start=0&status=approved'
html <- read_html(url)
rank_data_html <- html_nodes(html, css = '.primary td')
rank_data <- html_text(rank_data_html)
head(rank_data)
Run Code Online (Sandbox Code Playgroud)
有没有办法改变代码循环并刮掉数据?
本报网站在单独的<p>对象中列出了其文章的段落,其中每个<class>属性的名称以文章一词开头.
如何从tz2对象获取<class>属性以文章开头的所有段落?
require(rvest)
url = 'http://taz.de/Kongo-Kunst-im-Bruesseler-Afrikamuseum/!5563620/'
tz = read_html(url)
tz2 = tz %>%
xml_nodes(xpath = "//*[@class='sectbody']") %>%
xml_children()
Run Code Online (Sandbox Code Playgroud)
我的尝试:
# get one paragraph by class attribute
tz2 %>%
xml_nodes(xpath = "//p[@class='article first odd Initial']") %>%
xml_text()
# regex-like get all 'article' paragraphs
tz2 %>%
xml_nodes(xpath = "//p[@starts-with(@class, 'article')]") %>%
xml_text()
Run Code Online (Sandbox Code Playgroud) rvest ×10
r ×9
web-scraping ×6
xpath ×2
dplyr ×1
form-submit ×1
html ×1
html-parsing ×1
html-table ×1
httr ×1
progress-bar ×1
purrr ×1
web ×1
xml ×1