高级Twitter抓取与OSINT工具。
项目描述
这是由yihong0618维护的twint的一个分支。
目前我们只能备份3200条推文。
TWINT - Twitter情报工具
无身份验证。无API。无限制。
Twint是用Python编写的先进Twitter抓取工具,允许从Twitter个人资料抓取推文,而无需使用Twitter的API。
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
git clone --depth=1 https://github.com/twintproject/twint.git
cd twint
pip3 install . -r requirements.txt
Pip
pip3 install .
或
pip3 install --user --upgrade git+https://github.com/twintproject/twint.git@origin/master#egg=twint
Pipenv:
pipenv install git+https://github.com/twintproject/twint.git#egg=twint
2021年3月2日更新
新增:Dockerfile
很多人安装时遇到了问题(包括我)。请暂时使用Dockerfile,我会调查这些问题。
CLI基本示例和组合
一些简单的示例,帮助您理解基本操作
twint -u username
- 抓取一个用户的全部推文(不包括转发,但包括回复)。twint -u username --followers
- 抓取一个Twitter用户的关注者。twint -u username --following
- 抓取一个Twitter用户所关注的人。twint -u username --following
- 收集一个人所关注的人的完整信息twint -u username --resume resume_file.txt
- 从上次保存的scroll-id开始继续搜索。
有关命令和选项的更多详细信息,请参阅wiki
模块示例
Twint现在可以作为模块使用并支持自定义格式化。更多详细信息请参阅wiki
import twint
# Configure
c = twint.Config()
c.Username = "realDonaldTrump"
# Run
twint.run.Search(c)
输出
955511208597184512 2018-01-22 18:43:19 GMT <now> 菠萝是最好吃的水果
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。
图形可视化
我们正在开发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 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)
注意
特色博客文章
联系
如果您有任何问题,想要加入讨论,或需要额外帮助,欢迎加入我们的Twint专注频道OSINT团队
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。