X / Twitter 抓取产品系统

我要开发同款
proginn16423480552026年08月08日
6阅读

技术信息

语言技术
Python
系统类型
Windows
行业分类
脚本插件

作品详情

行业场景

立项原因:X / Twitter 是全球最活跃的实时社交平台,企业和研究机构对 X 数据的需求集中在 KOL 追踪、舆情监控、热点发现、量化交易信号、品牌监测等场景。但官方 API 收费昂贵(Basic 100 美元/月起步,Pro 5000 美元/月),免费层只给 1500 条/月,且 OAuth 1.0a 流程复杂;官方不开放任何用户级 Webhook,不提供公开搜索接口,普通开发者几乎无法触达完整数据。本项目旨在用纯 HTTP 自研方案绕过官方 API 配额限制,让任何持有登录态 cookie 的用户都能批量、稳定地抓取 X 数据。

行业场景:跨境社交媒体数据分析、海外 KOL 内容运营、AI 训练语料采集、舆情与品牌监测、量化交易情绪指标。

业务背景:客户多源数据需求中,X 数据占大头(17 万美元/年 Apify 头部 Twitter Scraper 月流水),但现有方案要么贵、要么限频、要么被风控。本项目以最低成本(仅需一个真实登录账号 + 代理)支撑生产级批量采集,写入统一 master.db,供下游分析与 Apify Actor 二次封装使用。

功能介绍

项目核心是从零自研一套 X / Twitter GraphQL 客户端,覆盖读、写、批量、账号管理四大模块。

【读接口模块】10 项能力:按 @名查账号(UserByScreenName)、用户推文列表(UserTweets,20 条/页 + cursor 分页)、单条推文详情 + thread + 评论(TweetDetail)、用户媒体(UserMedia)、关注列表(Following)、收藏夹(Bookmarks)、蓝勾粉丝列表(BlueVerifiedFollowers)、你认识的粉丝(FollowersYouKnow)、公开视频下载(syndication 无 auth)、鉴权态视频多码率下载(432~8768 kbps)。

【写接口模块】5 项能力:纯文字发推(CreateTweet)、回复评论(CreateTweet + reply_to)、点赞(FavoriteTweet)、取消点赞(UnfavoriteTweet)、转推(CreateRetweet)、收藏(CreateBookmark)。

【图片上传模块】三段式 INIT/APPEND/FINALIZE 已跑通(upload.twitter.com/i/media/upload.json),返回 media_id 24h 有效;带图发推仍为硬骨头(226/422 风控,已逆向 X bundle 真实字段结构 media.media_entities,待冷却后重测)。

【工具模块】多用户批量爬(18 KOL × 2-3 页)、多账号轮询池(AccountPool 自动跳过 rate-limit)、CDP 批量提取 cookies、过去 N 天时间窗口过滤、双语 CSV 导出(谷歌翻译免费 API)、评论详情拉取、master.db 统一入库(INSERT OR IGNORE 去重)、视频下载 CL

项目实现

X / Twitter 自研抓取客户端的架构设计与实现,包括 GraphQL 端点调研、Bundle Hash逆向(main.bcd2a32a.js)、features dict 维护(36 个 key 缺一不可)、x-client-transaction-id 自研算法(纯本地计算,不依赖 twscrape)、DPAPI 凭证加密存取、批量爬取与多账号轮询脚本、master.db 入库封装、视频下载 CLI、复盘文档与 SKILL.md 沉淀。

技术栈:Python 3.10 + curl_cffi 0.15.0(impersonate="chrome146" 模拟 TLS + HTTP/2 指纹,纯 HTTP 不走浏览器)、requests_toolbelt.MultipartEncoder(multipart 图片上传)、Windows DPAPI(auth_token + ct0 本地加密)、SQLite master.db、V2RayN SOCKS5 代理(环境变量 + config.yaml + 默认值三层 fallback)。

架构亮点:模块化分层(client / endpoints / db_writer / secrets / xcid / video_downloader / multi_user / accounts / extract_accounts),单例 DB 写入带 INSERT OR IGNORE 去重(key = source|tweet_id),AccountPool 自动跳过 rate-limited 账号并轮询切号,curl_cffi 走代理 0.5-2s/请求,比浏览器路径快 5-10 倍。

实现难点:① SearchTimeline 422(X router 不认) → 绕道多用户 timel

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论