跳转到主要内容

高级Twitter抓取与OSINT工具。

项目描述

这是由yihong0618维护的twint的一个分支。

目前我们只能备份3200条推文。

TWINT - Twitter情报工具

2 3

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

无身份验证。无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

图形可视化

graph

图形的详细信息也位于wiki

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

4

常见问题解答

我尝试抓取一个用户的推文,我知道它们存在,但无法获取到

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团队

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

twint_fork-2.5.3.tar.gz (35.9 kB 查看哈希值)

上传时间

构建分布

twint_fork-2.5.3-py3-none-any.whl (39.1 kB 查看哈希值)

上传时间 Python 3

由以下组织支持