使用rvest抓取房源页面仅获单张图片,如何获取全部链接?
解决rvest抓取全部房源图片链接的问题
问题原因
你的代码仅提取了所有img标签的src属性,但该页面的缩略图采用懒加载机制,真实图片链接存储在data-src属性中(而非src,src仅为占位图),且缩略图集中在特定容器节点下,需要精准定位才能获取全部链接。
修正后的抓取代码
library(tidyverse) library(rvest) url <- "https://clasipar.paraguay.com/inmuebles/propiedades-rurales/feedlot-de-107-hectareas-a-90-km-de-asuncion-71526" # 抓取所有缩略图+主图的完整链接 photos <- url %>% read_html() %>% # 定位缩略图容器,提取懒加载的真实链接 html_nodes(".gallery-thumbs img") %>% html_attr("data-src") %>% # 追加主图链接 c(., url %>% read_html() %>% html_node(".gallery-main img") %>% html_attr("src")) %>% # 过滤空值 discard(is.na) # 查看结果 print(photos)
下载图片到独立文件夹
# 创建专属文件夹(已存在则不报错) dir.create("property_photos", showWarnings = FALSE) # 循环下载所有图片 walk(photos, function(img_url) { # 提取图片文件名 img_name <- basename(img_url) # 下载到目标文件夹 download.file(img_url, file.path("property_photos", img_name), mode = "wb") })
关键说明
- 先通过浏览器开发者工具(F12)查看页面结构:缩略图容器类为
.gallery-thumbs,真实链接存在data-src属性;主图容器类为.gallery-main,链接直接在src属性中。 - 若遇到其他类似网站,需先确认图片元素的属性名和节点位置,再调整
html_nodes和html_attr的参数。
内容的提问来源于stack exchange,提问作者Funkeh-Monkeh
相关产品推荐
相关产品推荐

