如何用R语言Rvest包抓取网页中的span元素信息?
解决方案
先修正代码里的基础问题,再调整选择器就能提取目标内容:
- 变量名统一:你定义的页面变量是
page_outside,但后续调用时用了page,先把变量名对齐。 - 选择器调整:通过目标div的class定位父容器,再选中内部的
span标签。
完整代码示例
library(rvest) library(stringr) # 可选,用于处理非断空格 # URL模板 url = "https://www.finn.no/realestate/homes/search.html?page=%d&sort=PUBLISHED_DESC" # 读取页面 page <- read_html(sprintf(url, 1)) # 提取目标span内容:通过父div的class组合定位,再选中span elements <- page %>% html_nodes(".col-span-2.font-bold span") %>% html_text() # 提取结果 elements[1] # 输出面积:"103 m²" elements[2] # 输出价格:"8 650 000 kr" # 可选:将价格里的非断空格( )替换为普通空格 clean_price <- str_replace_all(elements[2], "\u00A0", " ")
选择器说明
.col-span-2.font-bold:用父div的两个class组合定位,避免和页面其他元素冲突。如果需要更精准,也可以用完整的class链(注意带冒号的class要加反斜杠转义,比如sm\\:mt-4):.col-span-2.mt-16.sm\\:mt-4.flex.justify-between.sm\\:block.space-x-12.font-bold- 末尾加
span表示选中该div下的所有span子元素,刚好对应你需要的两个内容。
内容的提问来源于stack exchange,提问作者Chrisabe
相关产品推荐
相关产品推荐

