使用RVest从网页中提取名称列表和基础超链接

安倍

我是网络爬虫的新手,并试图了解如何使用rvest其从网页收集数据。感兴趣的网页是https://www.cabq.gov/office-of-neighborhood-coordination/neighborhood-homeowner-coalition-websites,其中提供了社区组织列表,并提供了指向该组织网站的基础超链接。我试图产生一个数据框,其中第一列是组织名称,第二列是超链接中的URL。

我遵循了一些rvest教程和Stack Overflow问题,试图解析出适当的节点以提取我感兴趣的信息而无济于事。所需的输出看起来像这样(...只是在输出表目标的所需开始和结束之间的中间截断输出):

| organization                                   | URL                                 |
| ---------------------------------------------- | ----------------------------------- |
| 7 Bar North Homeowners Association             | https://www.7barnorthhoa.com/       |
| Academy Acres North Neighborhood Association   | http://www.aanna.org/               |
....
| Willow Wood Neighborhood Association           | http://www.hoamcoweb.com/willowwood |
| Winrock Villas Condominium Association         | http://winrockvillas.hoaspace.com/  |

我的代码尝试如下。

library(xml2)
library(rvest)
library(tidyverse)

URL <- "https://www.cabq.gov/office-of-neighborhood-coordination/neighborhood-homeowner-coalition-websites"

pg <- read_html(URL)

html_nodes(pg, "external-link") %>% 
  map_df(function(x) {
    data_frame(
      postal = html_node(x, "span") %>% html_text(trim=TRUE),
      city = html_nodes(x, "ul > li") %>% html_text(trim=TRUE)
    )
  })  
#> # A tibble: 0 x 0

reprex软件包(v0.3.0)创建于2021-02-15

任何帮助都将不胜感激。

巴黎JoséR.Ferrar

首先,我认为您需要使用xpath表达式来获取正确的链接类型。您对external-link元素感兴趣,因此可以使用:

html_nodes(pg, xpath="//a[@class='external-link']")

您可以构建更复杂的xpath表达式,使其适合您的需求。然后,您需要提取文本和元素的一个属性,可以使用:

html_nodes(pg, xpath="//a[@data-linktype='external' or 
 @class='external-link']") %>% 
map_df(function(x) {
data_frame(
  organization =  x %>% html_text(trim=TRUE),
  URL = x %>% html_attr("href")
)})  

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用dplyr从列表中提取名称

来自分类Dev

使用 rvest 从表中的列中提取超文本和超链接

来自分类Dev

使用map()函数从列表中提取名称

来自分类Dev

从嵌套列表中提取名称相同的向量,列表名称在哪里变化?使用purrr?

来自分类Dev

从(名称,处理程序)对列表中提取名称

来自分类Dev

从文本中提取名称

来自分类Dev

如何从字符串中提取名称和版本

来自分类Dev

使用python scrapy从网页中提取链接

来自分类Dev

使用 selenium 从标签中提取名称或 href 无需点击

来自分类Dev

如何使用rvest从网页中提取选择性数据?

来自分类Dev

使用 Rvest 抓取超链接

来自分类Dev

从网址中提取名称实体

来自分类Dev

从混乱的文件中提取名称

来自分类Dev

从网址中提取名称实体

来自分类Dev

从句子中提取名称

来自分类Dev

使用PHP超链接从mysql表中提取数据

来自分类Dev

如何使用 BeautifulSoup 从超链接中提取数字

来自分类Dev

无法使用Rvest包从RSS feed中提取链接

来自分类Dev

使用 rvest 从(包括空白行)中提取链接

来自分类Dev

使用“ rvest”提取链接

来自分类Dev

从Wikipedia项目符号列表中提取名称只会返回每个字母的名字

来自分类Dev

Excel VBA从超链接公式中提取超链接

来自分类Dev

使用 Python 抓取网页时从链接中提取 href

来自分类Dev

使用 Google 表格从网页抓取中提取链接文本

来自分类Dev

从JS中的字符串中提取名称和电子邮件

来自分类Dev

使用file_b中2列的信息从file_a中提取名称

来自分类Dev

如何从数组中的类中提取名称?

来自分类Dev

从对象中提取名称与测试匹配的属性

来自分类Dev

从PIV智能卡中提取名称

Related 相关文章

热门标签

归档