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

如何获取GoFundMe捐赠列表及实时捐赠通知?

问题:如何实现GoFundMe实时捐赠推送?

我需要获取GoFundMe筹款活动的捐赠列表,原本以为可通过API实现,但GoFundMe并无公开API,于是尝试网页爬虫。爬虫成功获取了筹款总额及目标金额,但抓取页面底部的捐赠列表、评论区域,或活动附带的/donations页面时,部分元素返回为空。例如爬取/donations页面时,<div id="portal">元素仅返回空标签,而Chrome检查面板中该元素包含大量嵌套内容。我的爬虫代码如下:

headers = {'Accept-Language': 'en-UK,en;q=0.5'}
page = get(URL + "/donations", headers=headers)
soup = bs(page.content, "html.parser")

results = soup.find(id="__next")
results = results.find("div", class_="page-modal-layout_pageModalLayout__O_yxc")
results = soup.find(id="portal")

我最初猜测数据存储在受认证保护的外部数据库中,但发现一款名为“GoFundMe Alerts by LX”的直播覆盖工具可接收实时捐赠通知,并能获取如{donation_id: 1102799627, amount: 5, is_offline: false, is_anonymous: true, ...}的捐赠数据结构,这说明存在可利用的接口,但我未能找到更多线索。现咨询:如何实现GoFundMe实时捐赠的推送?是否具备可行性?


可行性与实现思路

1. 静态爬虫失效的原因

GoFundMe的捐赠列表属于客户端渲染内容,你用requests获取的只是页面初始HTML骨架,实际捐赠数据是页面加载完成后通过AJAX请求动态拉取的,所以BeautifulSoup解析不到#portal内的实际内容。

2. 定位未公开的内部API

既然第三方工具能获取数据,说明存在未公开的内部接口,可通过以下方式查找:

  • 打开Chrome开发者工具(F12),切换到Network标签,访问目标活动的/donations页面,过滤XHR/Fetch请求,重点关注含donation、transaction关键词的请求,这类接口通常返回JSON格式的捐赠数据,包含你需要的donation_id、amount等字段。
  • 复制接口请求头(比如Authorization、X-CSRF-Token)到爬虫代码中,这些头信息是接口访问的必要凭证,通常从页面初始HTML或Cookie中提取。

3. 实时推送的两种实现方式

方式一:API轮询

  • 定时(比如每10秒)调用找到的捐赠数据API,对比最新返回结果与本地存储的历史数据,发现新增捐赠时触发推送(比如发送HTTP请求到你的通知服务、推送至聊天工具)。
  • 优势:实现简单,无需处理复杂连接逻辑;劣势:存在延迟,频繁请求可能触发反爬机制。

方式二:WebSocket监听

  • 很多实时通知依赖WebSocket,在Network面板的WS标签下查找GoFundMe的实时连接,观察其订阅消息和推送的捐赠数据格式。
  • 模拟该WebSocket连接,订阅目标活动的捐赠事件,一旦有新捐赠即可实时接收推送。
  • 优势:真正实时,延迟极低;劣势:需要处理握手、心跳、重连逻辑,接口可能随时变更。

4. 注意事项

  • GoFundMe内部API无公开文档,接口路径、参数或认证方式可能随时修改,实现需定期维护。
  • 控制请求频率,避免触发IP封禁或反爬措施。
  • 确保使用行为符合GoFundMe服务条款,避免违规用途。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 00:42:38