如何使用R将指定网页数据抓取并导出为CSV?
解决Invergordon 2025邮轮时刻表网页抓取及CSV导出问题
问题原因
你之前用html_nodes("p")无效是因为页面的核心邮轮数据不是放在段落<p>标签里,而是存储在HTML表格<table>节点中。该页面没有提供直接下载的CSV文件,所以需要通过抓取表格来提取数据。
具体R实现步骤
- 加载必要工具包
# 未安装则先安装 install.packages(c("rvest", "dplyr")) library(rvest) library(dplyr)
- 读取网页并抓取表格数据
# 读取目标网页 scrape1 <- read_html("https://www.cruisetimetables.com/invergordon-scotland-cruise-ship-schedule-2025.html") # 定位页面中的邮轮时刻表表格(页面仅含一个核心数据表格,直接定位table节点即可) cruise_data <- scrape1 %>% html_node("table") %>% html_table(header = TRUE, fill = TRUE) # fill=TRUE处理单元格跨行/跨列的情况
- 清理数据(可选)
根据表格实际情况清理无效行或格式:
# 删除全为空值的行 cleaned_data <- cruise_data %>% filter(!if_all(everything(), is.na))
- 导出为CSV文件
write.csv(cleaned_data, "invergordon_2025_cruise_schedule.csv", row.names = FALSE)
额外提示
如果后续遇到类似网页,可通过浏览器的开发者工具(F12)查看元素结构,确认数据所在的HTML标签类型(比如table、div等),再针对性地用html_node()/html_nodes()定位,避免盲目选择标签。
内容的提问来源于stack exchange,提问作者dreddlord
相关产品推荐
相关产品推荐

