You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言抓取FATF网站嵌套div中受制裁国家列表问题

R爬取FATF制裁国家列表的实现方案

你之前的代码无法获取目标数据核心有两个原因:一是所用的XML包对HTML5标准的嵌套div结构、自定义class属性解析容错性差;二是目标站点的制裁名单从未放在table标签下,而是按监管分类封装在带专属标识的div块中,查找table的思路从一开始就无法匹配到目标内容。

可直接运行的实现代码

推荐换用对现代网页适配更好的rvest包做解析,不用绕弯找table,直接按节点属性定位对应分类的国家列表即可:

# 未安装rvest可先运行下一行安装
# install.packages("rvest")
library(rvest)

target_url <- "https://www.fatf-gafi.org/countries/"
page <- read_html(target_url, encoding = "UTF-8")

# 提取高风险黑名单(适用正式制裁措施)的司法管辖区
high_risk_list <- page %>% 
  html_element(xpath = "//div[contains(@class, 'callout') and contains(., 'High-Risk Jurisdictions subject to a Call for Action')]") %>% 
  html_elements(".country-link") %>% 
  html_text2()

# 提取强化监控灰名单(适用强化尽调类监管措施)的司法管辖区
monitoring_list <- page %>% 
  html_element(xpath = "//div[contains(@class, 'callout') and contains(., 'Jurisdictions under Increased Monitoring')]") %>% 
  html_elements(".country-link") %>% 
  html_text2()

# 整理输出结果
sanction_related <- list(
  "高风险受制裁辖区" = unique(high_risk_list),
  "强化监控辖区" = unique(monitoring_list)
)

print(sanction_related)

注意事项

  • 不需要先用readLines()拉取源码再传入解析函数,rvest的read_html()内置了基础浏览器请求头和编码自动适配,直接读取静态页面的成功率更高,还能减少冗余代码。
  • FATF公布的两类名单对应不同等级的监管限制:高风险黑名单要求成员国对相关辖区主体采取针对性反制制裁措施,灰名单仅要求金融机构执行强化客户尽调流程,你可以根据自己对“制裁措施”的定义筛选对应列表。
  • 如果后续网站前端改版导致节点匹配失效,直接在浏览器中打开目标页面按F12调出开发者工具,定位到名单所在的外层div,调整xpath中的class匹配值或者文本关键词即可,不需要再尝试查找table结构。

内容的提问来源于stack exchange,提问作者Kaspro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 03:01:42