没有认证。没有 API。没有限制。
Twint 是一种用 Python 编写的高级 Twitter 抓取工具,允许从 Twitter 个人资料中抓取推文,而无需使用 Twitter 的 API。
Twint 利用 Twitter 的搜索运算符让您抓取特定用户的推文,抓取与某些主题、主题标签和趋势相关的推文,或者从推文中筛选出敏感信息,例如电子邮件和电话号码。我发现这非常有用,你也可以利用它发挥真正的创意。
Twint 还对 Twitter 进行特殊查询,允许您抓取 Twitter 用户的关注者、用户喜欢的推文以及他们关注的人,而无需任何身份验证、API、Selenium 或浏览器模拟。
使用 Twint 与 Twitter API 的一些好处:
可以获取几乎所有推文(Twitter API 仅限于最后 3200 条推文);
快速初始设置;
可以匿名使用,无需注册 Twitter;
无速率限制。
Twitter 限制浏览用户时间线时的滚动。这意味着通过.Profile
或.Favorites
您将能够获得约 3200 条推文。
Python 3.6;
aiohttp;
aiodns;
美丽汤4;
查德特;
数据类
弹性搜索;
运动袜;
熊猫(>=0.23.0);
aiohttp_socks;
日程;
地质学;
假用户代理;
py-googletransx。
git:
git克隆--深度= 1 https://github.com/twintproject/twint.gitcd twint pip3 安装 . -r 要求.txt
点:
pip3 安装 twint
或者
pip3 install --user --upgrade git+https://github.com/twintproject/twint.git@origin/master#egg=twint
管道夫:
Pipenv 安装 git+https://github.com/twintproject/twint.git#egg=twint
添加:Dockerfile
注意到很多人在安装时遇到问题(包括我)。当我研究它们时,请暂时使用 Dockerfile。
一些简单的例子可以帮助您理解基础知识:
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 文件。
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 开始恢复搜索。
有关命令和选项的更多详细信息,请参阅 wiki
Twint 现在可以用作模块并支持自定义格式。更多详细信息可以在 wiki 中找到
import twint#Configurec = twint.Config()c.Username = "realDonaldTrump"c.Search = "great"# Runtwint.run.Search(c)
输出
955511208597184512 2018-01-22 18:43:19 GMT <now> pineapples are the best fruit
导入 twintc = twint.Config()c.Username = "noneprivacy"c.Custom["tweet"] = ["id"]c.Custom["user"] = ["bio"]c.Limit = 10c.Store_csv = Truec.Output = "无"twint.run.Search(c)
写入文件;
CSV;
JSON;
SQLite;
弹性搜索。
有关使用 Twint 设置 Elasticsearch 的详细信息,请参阅 wiki。
图表详细信息也可以在 wiki 中找到。
我们正在开发 Twint 桌面应用程序。
我尝试从用户那里抓取推文,我知道它们存在,但我没有得到它们
Twitter 可以屏蔽帐户,这意味着他们的推文将无法通过搜索获得。要解决此问题,如果您通过 CLI 使用 Twint,请传递--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
或者
import twintc = twint.Config()c.Username = "noneprivacy"c.Limit = 100c.Store_csv = Truec.Output = "none.csv"c.Lang = "en"c.Translate = Truec.TranslateDest = "it" twint.run.Search(c)
笔记:
谷歌翻译有一些配额
如何使用 Twint 作为 OSINT 工具
Null Byte 制作的基础教程
使用 Spark、Optimus 和 Twint 在几分钟内通过 NLP 分析推文
将推文加载到 Kafka 和 Neo4j 中
如果您有任何疑问、想要参与讨论或需要额外帮助,欢迎您加入 OSINT 团队的 Twint 重点频道