Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/twintproject/twint
OSINT (开源情报)侦察数据泄露信息收集社会工程学威胁情报电子邮件收集学习与教育网络爬虫Archived
GitHubtwintproject/twint

twint

一款用 Python 编写的高级 Twitter 抓取与 OSINT 工具,不使用 Twitter 的 API,允许你抓取用户的关注者、关注对象、推文等更多信息,同时避开大部分 API 限制。

16.4k2.7k3年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
twint — 一款用 Python 编写的高级 Twitter 抓取与 OSINT 工具,不使用 Twitter 的 API,允许你抓取用户的关注者、关注对象、推文等更多信息,同时避开大部分 API 限制。 | Kitploit
查看仓库

TWINT - Twitter 情报工具

2 3

PyPI Build Status Python 3.6|3.7|3.8 GitHub license Downloads Downloads Patreon

无需身份验证。无需 API。无限制。

Twint 是一个用 Python 编写的先进 Twitter 抓取工具,允许在不使用 Twitter API 的情况下抓取 Twitter 个人资料中的推文。

Twint 利用 Twitter 的搜索运算符,让您可以抓取特定用户的推文、抓取与特定主题、话题标签和趋势相关的推文,或者从推文中筛选出敏感信息,如电子邮件和电话号码。我发现这非常有用,而且您也可以发挥创意,实现更多功能。

Twint 还会向 Twitter 发送特殊查询,使您能够无需任何身份验证、API、Selenium 或浏览器模拟,即可抓取 Twitter 用户的关注者、用户点赞的推文以及他们关注的人。

tl;dr 优势

使用 Twint 相较于 Twitter API 的一些优势:

  • 几乎可以抓取__所有__推文(Twitter API 仅限最近 3200 条推文);
  • 初始设置快速;
  • 可匿名使用,无需 Twitter 注册;
  • 无速率限制。

Twitter 施加的限制

Twitter 在浏览用户时间线时限制了滚动次数。这意味着使用 .Profile 或 .Favorites 大约只能获取 3200 条推文。

依赖

  • Python 3.6;
  • aiohttp;
  • aiodns;
  • beautifulsoup4;
  • cchardet;
  • dataclasses
  • elasticsearch;
  • pysocks;
  • pandas (>=0.23.0);
  • aiohttp_socks;
  • schedule;
  • geopy;
  • fake-useragent;
  • py-googletransx。

安装

Git 方式:

root@kitploit:~
git clone --depth=1 https://github.com/twintproject/twint.git
cd twint
pip3 install . -r requirements.txt

Pip 方式:

root@kitploit:~
pip3 install twint

或

root@kitploit:~
pip3 install --user --upgrade git+https://github.com/twintproject/twint.git@origin/master#egg=twint

Pipenv 方式:

root@kitploit:~
pipenv install git+https://github.com/twintproject/twint.git#egg=twint

2021 年 3 月 2 日更新

新增:Dockerfile

注意到很多人遇到安装问题(包括我自己)。在我排查问题期间,请暂时使用 Dockerfile。

CLI 基本示例与组合

以下是一些简单示例,帮助您理解基本用法:

  • twint -u username - 抓取 用户 的所有推文(不包括 转推,但包括 回复)。
  • twint -u username -s pineapple - 抓取该 用户 时间线中包含 pineapple 的所有推文。
  • twint -s pineapple - 收集所有人的推文中包含 pineapple 的所有推文。
  • twint -u username --year 2014 - 收集 2014 年之前 发布的推文。
  • twint -u username --since "2015-12-20 20:30:15" - 收集自 2015-12-20 20:30:15 以来发布的推文。
  • twint -u username --since 2015-12-20 - 收集自 2015-12-20 00:00:00 以来发布的推文。
  • twint -u username -o file.txt - 抓取推文并保存到 file.txt。
  • twint -u username -o file.csv --csv - 抓取推文并保存为 csv 文件。
  • twint -u username --email --phone - 显示可能包含电话号码或电子邮件地址的推文。
  • twint -s "Donald Trump" --verified - 显示经过验证的用户发布的关于 Donald Trump 的推文。
  • twint -g="48.880048,2.385939,1km" -o file.csv --csv - 抓取巴黎某地点周围 1 公里半径内的推文并导出为 csv 文件。

更多命令和选项的详细信息请参阅 Wiki

模块示例

Twint 现在可以作为模块使用,并支持自定义格式。更多详情请参阅 Wiki

root@kitploit:~
import twint

# 配置
c = twint.Config()
c.Username = "realDonaldTrump"
c.Search = "great"

# 运行
twint.run.Search(c)

输出

955511208597184512 2018-01-22 18:43:19 GMT <now> pineapples are the best fruit

root@kitploit:~
import twint

c = twint.Config()

c.Username = "noneprivacy"
c.Custom["tweet"] = ["id"]
c.Custom["user"] = ["bio"]
c.Limit = 10
c.Store_csv = True
c.Output = "none"

twint.run.Search(c)

存储选项

  • 写入文件;
  • CSV;
  • JSON;
  • SQLite;
  • Elasticsearch。

Elasticsearch 设置

使用 Twint 设置 Elasticsearch 的详细信息请参阅 Wiki。

图形可视化

graph

Graph 的详细信息也位于 Wiki 中。

我们正在开发一款 Twint 桌面应用。

4

FAQ

我尝试抓取某个用户的推文,我知道它们存在,但获取不到。

Twitter 可能会对账户进行影子封禁,这意味着他们的推文将无法通过搜索获取。解决方法:如果使用 CLI,请传递 --profile-full;如果以模块方式使用 Twint,请添加 config.Profile_full = True。请注意,此过程会相当缓慢。

更多示例

关注者/关注

仅获取关注者用户名/关注用户名

twint -u username --followers

twint -u username --following

获取关注者/关注用户的用户信息

twint -u username --followers --user-full

twint -u username --following --user-full

用户列表

仅获取用户的用户信息

twint -u username --user-full

从用户列表中获取用户的用户信息

twint --userlist inputlist --user-full

推文翻译(实验性)

获取 100 条英文推文并翻译成意大利语

twint -u noneprivacy --csv --output none.csv --lang en --translate --translate-dest it --limit 100

或

root@kitploit:~
import twint

c = twint.Config()
c.Username = "noneprivacy"
c.Limit = 100
c.Store_csv = True
c.Output = "none.csv"
c.Lang = "en"
c.Translate = True
c.TranslateDest = "it"
twint.run.Search(c)

注意事项:

  • Google 翻译有配额限制

精选博客文章:

  • 如何使用 Twint 作为 OSINT 工具
  • Null Byte 制作的基础教程
  • 通过 Spark、Optimus 和 Twint 在几分钟内利用 NLP 分析推文
  • 将推文加载到 Kafka 和 Neo4j 中

联系方式

如果您有任何问题、想参与讨论或需要额外帮助,欢迎加入我们在 OSINT 团队 的 Twint 专用频道。

下载工具
  • twint -u username -es localhost:9200 - 将推文输出到 Elasticsearch。
  • twint -u username -o file.json --json - 抓取推文并保存为 json 文件。
  • twint -u username --database tweets.db - 将推文保存到 SQLite 数据库。
  • twint -u username --followers - 抓取 Twitter 用户的关注者。
  • twint -u username --following - 抓取 Twitter 用户关注的人。
  • twint -u username --favorites - 收集用户点赞过的所有推文(大约获取 3200 条推文)。
  • twint -u username --following --user-full - 收集某人所关注用户的完整用户信息。
  • twint -u username --timeline - 使用高效方法从用户个人资料中收集推文(大约获取 3200 条推文,包括 转推 和 回复)。
  • twint -u username --retweets - 使用快速方法从用户个人资料中收集最近 900 条推文(包括转推)。
  • twint -u username --resume resume_file.txt - 从上次保存的滚动 ID 恢复搜索。