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

如何用Golang的Anaconda库抓取含指定URL模式的推特流?

问题根因说明

  • SiteStream接口返回404的原因:Twitter官方早在2018年就完全下线了Site Streams、User Streams两类接口,Anaconda库中保留的相关方法属于未移除的废弃接口,完全无法使用,无需再尝试调用。
  • PublicStreamFilter的track参数直接填目标URL失效的原因:流式API的track参数默认仅匹配推文正文文本内容,不会自动解析t.co短链对应的原始地址,因此直接填写目标域名无法命中结果。

可行解决方案

方案1:使用API原生URL匹配规则(推荐)

Twitter流式过滤API原生支持url:运算符,可直接匹配短链背后的展开URL域名/路径,无需本地二次处理:

  1. 构造track参数时,将需要匹配的URL模式按url:目标域名格式编写,例如要匹配所有包含google.com链接的推文,参数填写url:google.com即可
  2. 继续使用PublicStreamFilter方法发起请求,示例代码如下:
import "net/url"

// 构造请求参数
v := url.Values{}
v.Set("track", "url:google.com")
// 启动过滤流
stream := api.PublicStreamFilter(v)

API后台会自动匹配所有展开URL包含对应规则的推文,直接返回符合要求的结果。

方案2:本地二次过滤

如果你的API权限不支持url:运算符,可通过拉取完整推文实体后本地过滤实现:

  1. 调用PublicStreamFilter时可先搭配其他相关关键词缩小流数据范围,降低本地处理压力
  2. 接收每条推文后,遍历Entities.Urls数组中的Expanded_url字段,匹配是否包含目标域名,示例过滤逻辑:
import "strings"

func hasTargetUrl(tweet anaconda.Tweet, targetDomain string) bool {
    for _, u := range tweet.Entities.Urls {
        if strings.Contains(u.Expanded_url, targetDomain) {
            return true
        }
    }
    return false
}

匹配成功的推文再做后续留存处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:06:04