使用rvest与gadget selector爬取数据无结果的技术咨询
解决rvest爬取artbonus.gov.it无数据的问题
- 先排查页面加载逻辑:右键点击页面选择「查看网页源代码」,在原始代码里搜索
erogazioni_intervent。如果搜不到,说明目标内容是JavaScript动态渲染生成的——rvest只能抓取初始请求返回的静态HTML,不会执行页面的JS脚本,自然拿不到动态加载的元素。 - 针对性解决方法:
- 用
RSelenium或playwright这类工具模拟浏览器行为,等页面JS执行完毕、内容加载完成后再抓取元素 - 直接抓数据接口:打开浏览器开发者工具(F12)切换到「网络」标签,筛选XHR/Fetch请求,找到加载列表数据的API接口,直接请求接口获取JSON格式的数据,比爬页面更高效稳定
- 用
- 静态抓取的验证尝试:如果原始HTML里确实存在该类名,检查代码细节:
- 可能是请求被网站拦截,试试添加
user-agent请求头:library(rvest) url <- "https://artbonus.gov.it/lista-interventi.html" page <- read_html(url, user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36") nodes <- page %>% html_nodes(".erogazioni_intervent") - 也可能是选择器不够精准,结合实际DOM结构调整,比如用
div.erogazioni_intervent这类更具体的选择器
- 可能是请求被网站拦截,试试添加
内容的提问来源于stack exchange,提问作者Guglielmo Visentin
相关产品推荐
相关产品推荐

