X长文抓取
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_760e259a/x-article-fetcher。
技能介绍
要解决的问题
X.com 的长文章(article)只能在网页端阅读,没有官方导出入口。想离线保存或做后续文本分析时,通常只能手动复制,图片还要一张张另存。更麻烦的是,文章内容以 Draft.js 的 content_state 结构存储,直接请求拿到的是 blocks、inlineStyleRanges、entityRanges 这类中间格式,不是干净的 Markdown。
核心能力与工作流程
@user_760e259a/x-article-fetcher 的思路是直接调用 X 的 GraphQL 接口,把这套中间格式“翻译”成可读的 Markdown。
关键步骤:
- 提取 queryId:脚本先从
x.com主页加载的 JS 文件中正则匹配最新的TweetResultByRestIdqueryId,避免硬编码过期 ID。 - 构造请求:拼装 GraphQL GET 请求,携带
tweetId、features、fieldToggles等变量和认证 headers。 - 解析 Draft.js:按 block 类型渲染标题、代码块、有序列表;用
inlineStyleRanges还原粗体/斜体;用entityRanges处理链接和图片。 - 图片映射与回填:通过
media_entities数组建立 mediaId → URL 映射,把图片嵌入原文中正确的 block 位置。 - 可选下载:加
--download-images会把图片存到本地images/目录,并生成gallery.html浏览页。
输出默认写入 article.md,可用 --output 指定路径。需要 PDF 时,额外脚本读取 frontmatter 里的 title,生成深蓝渐变封面与目录页,再用 Edge headless 渲染成 A4 版式,图片保持原位。
适用边界
- 需要登录态:必须提供
auth_token和ct0两个 cookie,通过命令行参数传入,脚本不持久化凭证,用完建议去 X 安全设置刷新 token。 - 仅支持文章格式:只处理
/article/{id}这类链接,普通短帖不在范围内。 - PDF 依赖本机环境:需
markdown、pygments库和 Microsoft Edge 浏览器(Windows 自带),其他平台需自行确认。
使用场景
- 浏览到一篇优质的X长文,需要将其完整保存为Markdown文件,离线阅读或纳入个人知识库。
- 做内容研究或数据分析时,需要提取X长文正文和配图,构建本地语料库或做结构化文本处理。
- 撰写引用X长文的技术博客时,需要把原文中的图片全部下载到本地并生成浏览页逐一核对。
- 需要将X长文渲染成带封面和目录的PDF,归档或分发给团队成员离线查阅。
适合人员
- 经常在X阅读技术长文、需要把文章转成Markdown存入笔记库的开发者。
- 需要收集X长文正文与图片、构建本地语料库的数据分析师或研究员。
- 习惯在通勤时离线阅读X长文、想一键保存完整文章的内容读者。
- 负责把外部技术文章归档为PDF、需要保留封面和目录结构的文档管理员。