标签: rvest

使用 rvest 进行网页抓取时,如何修复 R 'UseMethod("xml_find_all")' 中的错误'中的以下错误?

我是 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”的对象

你能帮我么?我不明白我做错了什么。

r web-scraping rvest

2
推荐指数
1
解决办法
7723
查看次数

使用 &lt;a href="javascript:linkTo_UnCryptMailto(%27ocknvq%2Cjgkmg0qdgtnkpBwpk%5C%2Fvwgdkpigp0fg%27) 获取 mailto

我想从此链接中提取带有 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)

提前致谢

r web-scraping rvest

2
推荐指数
1
解决办法
1872
查看次数

地图函数 R 中的进度条 - 网页抓取

在进行网页抓取时,我一直试图在地图功能中包含进度条。

首先,我收集所有链接,几秒钟内就可以得到结果。

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 web-scraping progress-bar rvest purrr

2
推荐指数
1
解决办法
1220
查看次数

如何在R中的RVest中将XPATH值定义为html_nodes中的变量

在使用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)

xpath r rvest

1
推荐指数
1
解决办法
2047
查看次数

R-从URL / HTML对象/ HTML响应写入HTML文件

我想使用R中的URL保存HTML文件。我试图分别在网站的URL上使用GET和的read_html功能httrrvest程序包保存响应对象,然后在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文件中。

web httr rvest

1
推荐指数
1
解决办法
2566
查看次数

在R中使用`rvest`使用`read_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)

其中包括页面上的一些表格元素,但不包括我感兴趣的表格元素.

关于我哪里出错的任何建议都将非常感谢!

html r web-scraping rvest

1
推荐指数
1
解决办法
987
查看次数

提交表格时,Rvest找不到可能的提交目标

我正在尝试从需要提交表单的网站上抓取结果,为此,我正在使用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找不到要提交的标准按钮目标。是否有必要指定要寻找的标签或按钮?

任何帮助,不胜感激

xml r form-submit dplyr rvest

1
推荐指数
1
解决办法
1401
查看次数

从R中的网站提取html表

嗨,我想从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吗?

r html-table rvest

1
推荐指数
1
解决办法
574
查看次数

Rvest webscraping错误 - 识别css或xpath?

卢旺达合作社有一个数据库; 它有大约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)

有没有办法改变代码循环并刮掉数据?

r web-scraping rvest

1
推荐指数
1
解决办法
144
查看次数

根据特定模式刮取多个段落

本报网站在单独的<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)

xpath r html-parsing web-scraping rvest

1
推荐指数
1
解决办法
58
查看次数

标签 统计

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