【发布时间】:2021-05-14 05:19:24
【问题描述】:
我正在尝试使用 R 的 rvest 包从Artsy 获取信息。我想获取有关绘画名称、年份、价格、地点(画廊名称、拍卖等)、艺术家姓名和材料的信息使用的。每幅画的内页都提供了有关材料的信息。下面提供了我尝试使用的代码:
library(rvest)
library(dplyr)
library(tidyverse)
get_material = function (painting_link) {
painting_page = read_html (painting_link)
material = painting_page %>% html_nodes('h2+ .kPqROo') %>%
html_text() %>% paste(collapse = ",")
return(material)
}
for(page_result in 2:3) {
link = paste0 ("https://www.artsy.net/collect?page=", page_result, "&additional_gene_ids%5B0%5D=painting")
page = read_html(link)
painting_name_year = page %>% html_nodes("#main .kjRHrZ") %>% html_text()
painting_link = page %>% html_nodes('#main .kjRHrZ') %>% html_attr("<div color="black60" font-family="sans" class="Box-sc-15se88d-0 Text-sc-18gcpao-0 kjRHrZ">\n<i>") %>% paste("https://www.artsy.net", ., sep="/")
price = page %>% html_nodes('.ibabyz') %>% html_text()
place = page %>% html_nodes('hWKLzd') %>% html_text()
artist = page %>% html_nodes('.bQOCym .bQOCym') %>% html_text()
material = sapply(painting_link, FUN=get_material, USE.NAMES = FALSE)
}
artsy <- data.frame(painting_name_year, price, place, artist)
view(artsy)
painting_link、地点和材料的代码不起作用。此外,一项观察重复了 3 次。我该如何解决这个问题?
【问题讨论】:
-
你试过下面的代码了吗?
-
我已经尝试过,但在代码的最后部分出现错误。 “future_map_dfr(链接,.f = get_listing_info)中的错误:找不到函数“future_map_dfr””
-
你需要安装和导入库purrr
-
是的,purrr 已经安装在 R 中,我也导入了库。我仍然收到该错误。
-
现在安装了。工作正常!
标签: r dataframe web-scraping rvest