如何用R语言爬取Wayback Machine中网页的存档日期?
解决Wayback Machine存档日期爬取问题
方案1:直接从URL解析(推荐)
Wayback Machine的存档URL自带完整时间戳,格式为YYYYMMDDHHMMSS,前8位就是目标日期。这种方法无需解析页面,效率更高且更可靠:
library(rvest) library(dplyr) library(stringr) url <- "https://web.archive.org/web/20110604005152/https://www.airnav.com/fuel/report.html" # 提取时间戳并转换为标准日期格式 timestamp <- str_extract(url, "(?<=web/)[0-9]{14}") date_scraped <- as.Date(timestamp, format = "%Y%m%d") print(date_scraped) # 输出: "2011-06-04"
方案2:从页面顶部横幅提取
如果必须从页面元素提取,你之前的XPath选择器定位错误。Wayback顶部横幅的日期元素可通过以下选择器获取:
library(rvest) library(dplyr) url <- "https://web.archive.org/web/20110604005152/https://www.airnav.com/fuel/report.html" webpage <- read_html(url) # 使用CSS选择器提取日期文本 date_scraped <- webpage %>% html_node("span.date") %>% html_text() # 也可以用等效的XPath选择器 # date_scraped <- webpage %>% # html_node(xpath = '//span[@class="date"]') %>% # html_text() print(date_scraped) # 输出: "Sat, 04 Jun 2011 00:51:52 GMT"
补充说明
- 方案1优先选用,URL中的时间戳是Wayback存档的唯一标识,不会因页面结构变更失效
- 方案2依赖页面HTML结构,若Wayback修改顶部横幅布局,需同步更新选择器
内容的提问来源于stack exchange,提问作者bandcar
相关产品推荐
相关产品推荐

