Twitter 資料匯出工具

從 Twitter(X) 網頁版匯出推文、書籤、列表等各種資料,支援匯出 JSON/CSV/HTML。

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

作者
prinsss
今日安裝
6
安裝總數
830
評價
6 1 0
版本
1.3.1
建立日期
2024-04-11
更新日期
2025-12-15
尺寸
273.5 KB
授權條款
MIT
腳本執行於

twitter-web-exporter

UserScript Latest Release License TypeScript

English | 简体中文

功能

  • 🚚 以 JSON/CSV/HTML 格式导出用户的推文、回复和喜欢
  • 🔖 导出你的书签(没有最多 800 条的数量限制!)
  • 💞 导出任意用户的关注者、粉丝列表
  • 👥 导出列表成员和订阅者
  • 🌪️ 导出主页时间线和列表时间线中的推文
  • 🔍 导出搜索结果
  • ✉️ 导出私信
  • 📦 以原始尺寸批量下载推文中的图片和视频
  • 🚀 无需开发者账号或 API 密钥
  • 🛠️ 以油猴脚本的形式提供,所有操作均在浏览器内完成
  • 💾 你的数据永远不会离开你的计算机
  • 💚 完全免费开源

安装

  1. 安装浏览器扩展 TampermonkeyViolentmonkey
  2. 点击 这里 安装用户脚本

使用方法

安装脚本后,你会在页面左侧看到一个浮动面板。点击 🐈 猫咪按钮关闭面板或重新打开。你也可以通过点击浏览器菜单栏上的 Tampermonkey/Violentmonkey 图标,然后在脚本菜单中打开控制面板。

如果你看不到猫咪按钮,也看不到如图所示的脚本菜单选项,请检查脚本是否已正确安装并启用。

03-menu-commands

点击 ⚙️ 齿轮按钮打开设置面板。你可以在此处更改 UI 主题并启用/禁用脚本功能。

然后打开要从中导出数据的页面。脚本会自动捕获以下页面上的数据:

  • 用户个人资料页面(推文、回复、媒体、喜欢)
  • 书签页面
  • 搜索结果页面
  • 用户关注者/粉丝页面
  • 列表成员/订阅者页面

在浮动面板上会显示已经捕获的数据条数,点击 ↗️ 箭头按钮可以打开数据表视图。你可以在这里预览捕获到的数据并选择要导出的项。

01-user-interface

点击「导出数据」可将捕获到的数据导出为选定的文件格式。目前,脚本支持导出为 JSON、CSV 和 HTML。导出的文件将下载到你的计算机上。

如果勾选「包括所有元数据」选项,导出的文件中将会包含 API 中提供的所有字段,为你提供最完整的数据集。这可能会显著增加导出数据的大小。

点击「导出媒体」可批量下载推文中的图片和视频。

所有媒体文件都将以其原始尺寸打包下载到一个 zip 压缩文件中。如果想要使用外部下载管理器下载它们,也可以点击「复制 URL」复制媒体文件的下载地址。

请合理设置「速率限制」选项的值,以避免一次下载太多文件。默认值是 1000,这意味着脚本将在下载每个文件后等待 1 秒。

02-export-media.png

局限性

此脚本仅在 Web App (twitter.com) 上运行,在手机 App 上无效。

简单来说,此脚本只能“看到”你在页面上能看到的内容。如果你在页面上看不到某些数据,脚本也无法访问该数据。例如,Twitter 在个人资料页上仅显示最新的 3200 条推文,那么脚本就无法导出比这更早的推文。

网页上的数据是动态加载的,这意味着只有当数据被加载到本地之后,脚本才能访问这些数据。你需要在页面上不断向下滚动以加载更多数据。导出之前,请确保所有数据都已加载完毕。

导出过程不是自动化的(除非配合使用第三方辅助工具)。此脚本依赖于用户操作来触发 Twitter Web App 的数据获取过程。脚本本身不会向 Twitter API 发送任何请求。

此脚本不依赖于官方 Twitter API,因此没有官方 API 的速率限制。但是,Twitter Web App 自身是有限制的。如果达到了该速率限制,请稍后重试。

另一方面,此脚本可以导出官方 API 中不提供的数据。例如,官方 API 在访问书签时有最多获取 800 条的限制。而此脚本可以无限制地导出所有书签,除非 Twitter Web App 本身被限制。

另外,媒体文件下载功能也存在一定的限制。目前,脚本会将图片和视频下载到浏览器内存中,然后压缩为单个压缩包。如果媒体文件的大小过大,可能会导致浏览器崩溃。其最大支持的压缩包大小取决于浏览器和计算机可用内存。(Chrome 上为 2GB,Firefox 上为 800MB)

常见问题

问:你是如何获取数据的?
答:此脚本本身不会向 Twitter API 发起任何请求。它会安装一个 HTTP 网络拦截器,来捕获 Twitter Web App 发起的 GraphQL 请求的响应,然后解析响应并从中提取数据。

问:脚本抓取不到任何数据!
答:参见 Content-Security-Policy (CSP) Issues #19

问:为什么导出的数据不完整?
答:脚本只能导出由 Twitter Web App 加载好的数据。由于数据是懒加载的,你需要不断向下滚动以加载更多数据。对于长列表,可能需要滚动到页面底部,确保所有数据加载完毕后再导出。

问:导出过程可以自动化吗?
答:不可以。除非使用第三方工具辅助配合,比如 Auto Scroll 自动滚动工具。

问:我需要申请开发者帐户吗?
答:不需要。此脚本不向 Twitter API 发送任何请求。

问:是否有 API 速率限制?
答:没有。除非你达到了 Twitter Web App 本身的速率限制。

问:使用脚本是否会导致封号?
答:基本不可能。此脚本中不存在任何自动操作,行为类似于你手动从网页上拷贝数据。

问:关于隐私问题?
答:所有操作都在你的本地浏览器中完成。不会将数据发送到云端。

问:你为什么要做这个?
答:用于归档。Twitter 的存档导出仅包含关注者/粉丝的数字用户 ID,根本不是给人看的。而且存档还不包含书签。

问:与其他替代方案有何不同?
答:无需为 Twitter API 申请开发者帐户。无需将你的私人数据发送到别人的服务器。此脚本完全免费且开源。

问:脚本无法运行!
答:平台升级可能会导致脚本功能故障。如果遇到任何问题,请提交 issue 反馈。

开源许可

MIT