返回空字符的简单 rvest 代码
Simple rvest code returning empty character
我正在尝试使用选择器小工具从 'Printer-Friendly Minutes' link 上的 this website 抓取 href。通常有效,但这次我只是得到一个空字符来代替我试图抓取的 href。
代码如下:
url <- "http://www.richmond.ca/cityhall/council/agendas/council/2021/012521_minutes.htm"
try <- url %>% read_html %>% html_nodes(".first-child a") %>% html_attr("href")
有人知道可能出了什么问题吗?
我认为您只是没有正确选择节点。学习xpath真的很有帮助,可以在html:
中进行精确的节点导航
library(rvest)
domain <- "http://www.richmond.ca"
url <- paste0(domain, "/cityhall/council/agendas/council/2021/012521_minutes.htm")
pdf_url <- url %>%
read_html %>%
html_nodes(xpath = "//a[@title='PFM_CNCL_012521']") %>%
html_attr("href") %>%
paste0(domain, .)
pdf_url
#> [1] "http://www.richmond.ca/__shared/assets/PFM_CNCL_01252157630.pdf"
我们可以看到这是一个有效的 link 通过获取结果:
httr::GET(pdf_url)
#> Response [https://www.richmond.ca/__shared/assets/PFM_CNCL_01252157630.pdf]
#> Date: 2021-10-18 20:35
#> Status: 200
#> Content-Type: application/pdf
#> Size: 694 kB
#> <BINARY BODY>
由 reprex package (v2.0.0)
于 2021-10-18 创建
由于 PFM 用作分钟的缩写,您可以通过该子字符串定位 href
library(rvest)
library(magrittr)
url <- "http://www.richmond.ca/cityhall/council/agendas/council/2021/012521_minutes.htm"
read_html(url) %>%
html_element('[href*=PFM]') %>%
html_attr('href')
您还可以使用它与前面的img
标记的相邻兄弟关系,它可以很好地通过它的alt
属性值来定位:
read_html(url) %>%
html_element('[alt="PDF Document"] + a') %>%
html_attr('href')
我正在尝试使用选择器小工具从 'Printer-Friendly Minutes' link 上的 this website 抓取 href。通常有效,但这次我只是得到一个空字符来代替我试图抓取的 href。
代码如下:
url <- "http://www.richmond.ca/cityhall/council/agendas/council/2021/012521_minutes.htm"
try <- url %>% read_html %>% html_nodes(".first-child a") %>% html_attr("href")
有人知道可能出了什么问题吗?
我认为您只是没有正确选择节点。学习xpath真的很有帮助,可以在html:
中进行精确的节点导航library(rvest)
domain <- "http://www.richmond.ca"
url <- paste0(domain, "/cityhall/council/agendas/council/2021/012521_minutes.htm")
pdf_url <- url %>%
read_html %>%
html_nodes(xpath = "//a[@title='PFM_CNCL_012521']") %>%
html_attr("href") %>%
paste0(domain, .)
pdf_url
#> [1] "http://www.richmond.ca/__shared/assets/PFM_CNCL_01252157630.pdf"
我们可以看到这是一个有效的 link 通过获取结果:
httr::GET(pdf_url)
#> Response [https://www.richmond.ca/__shared/assets/PFM_CNCL_01252157630.pdf]
#> Date: 2021-10-18 20:35
#> Status: 200
#> Content-Type: application/pdf
#> Size: 694 kB
#> <BINARY BODY>
由 reprex package (v2.0.0)
于 2021-10-18 创建由于 PFM 用作分钟的缩写,您可以通过该子字符串定位 href
library(rvest)
library(magrittr)
url <- "http://www.richmond.ca/cityhall/council/agendas/council/2021/012521_minutes.htm"
read_html(url) %>%
html_element('[href*=PFM]') %>%
html_attr('href')
您还可以使用它与前面的img
标记的相邻兄弟关系,它可以很好地通过它的alt
属性值来定位:
read_html(url) %>%
html_element('[alt="PDF Document"] + a') %>%
html_attr('href')