twint README

The project's README from github.com/twintproject/twint. As one markdown file: README.md.

TWINT - Twitter Intelligence Tool

2 3

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

No authentication. No API. No limits.

Twint is an advanced Twitter scraping tool written in Python that allows for scraping Tweets from Twitter profiles without using Twitter's API.

Twint utilizes Twitter's search operators to let you scrape Tweets from specific users, scrape Tweets relating to certain topics, hashtags & trends, or sort out sensitive information from Tweets like e-mail and phone numbers. I find this very useful, and you can get really creative with it too.

Twint also makes special queries to Twitter allowing you to also scrape a Twitter user's followers, Tweets a user has liked, and who they follow without any authentication, API, Selenium, or browser emulation.

tl;dr Benefits

Some of the benefits of using Twint vs Twitter API:

Limits imposed by Twitter

Twitter limits scrolls while browsing the user timeline. This means that with .Profile or with .Favorites you will be able to get ~3200 tweets.

Requirements

Installing

Git:

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

Pip:

pip3 install twint

or

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

March 2, 2021 Update

Added: Dockerfile

Noticed a lot of people are having issues installing (including me). Please use the Dockerfile temporarily while I look into them.

CLI Basic Examples and Combos

A few simple examples to help you understand the basics:

More detail about the commands and options are located in the wiki

Module Example

Twint can now be used as a module and supports custom formatting. More details are located in the wiki

import twint

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

# Run
twint.run.Search(c)

Output

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

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)

Storing Options

Elasticsearch Setup

Details on setting up Elasticsearch with Twint is located in the wiki.

Graph Visualization

graph

Graph details are also located in the wiki.

We are developing a Twint Desktop App.

4

FAQ

I tried scraping tweets from a user, I know that they exist but I'm not getting them

Twitter can shadow-ban accounts, which means that their tweets will not be available via search. To solve this, pass --profile-full if you are using Twint via CLI or, if are using Twint as module, add config.Profile_full = True. Please note that this process will be quite slow.

More Examples

Followers/Following

To get only follower usernames/following usernames

twint -u username --followers

twint -u username --following

To get user info of followers/following users

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

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

userlist

To get only user info of user

twint -u username --user-full

To get user info of users from a userlist

twint --userlist inputlist --user-full

tweet translation (experimental)

To get 100 english tweets and translate them to italian

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

or

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)

Notes:

Contact

If you have any question, want to join in discussions, or need extra help, you are welcome to join our Twint focused channel at OSINT team

twint (twintproject/twint)

Searching Database…

16.4K ·GitHub
archived
这是什么?Twint 是一个用 Python 编写的工具,用于抓取 Twitter 数据,包括推文、粉丝、关注列表、点赞等,不需要使用 Twitter 官方 API,因此不受 API 限制,也无需注册。
这是命令行工具,还是可以导入到我自己脚本中的库?两者都是:你可以直接在命令行中运行(例如 'twint -u username'),也可以作为 Python 模块导入,并在脚本中自定义输出格式。
怎么安装和运行?可以通过 Git 或 Pip(或 Pipenv)安装,然后在终端中运行 'twint -u username' 等命令。如果常规安装遇到问题,仓库还提供了 Dockerfile。
除了 Python,它还需要什么才能运行?需要 Python 3.6 及以上版本,以及随之安装的一组库,包括 aiohttp、aiodns、beautifulsoup4、cchardet、elasticsearch、pandas、pysocks、geopy、fake-useragent 和 py-googletransx 等。
抓取是否一直有效?这个项目还在维护吗?该仓库已归档,不再积极开发,因此随着 Twitter 网站变化,它可能会失效。即使能正常工作,Twitter 也仍将个人主页和点赞内容的抓取量限制在大约 3200 条推文左右,而被影子封禁的账号则需要使用 --profile-full 参数才能被找到。
使用它需要 Twitter 账号或 API 密钥吗?不需要。Twint 不进行任何需要身份验证的 API 调用,因此无需注册 Twitter,就可以完全匿名地抓取推文、粉丝和关注列表。
Twint 支持哪些输出格式?你可以将结果保存为纯文本文件、CSV、JSON 或 SQLite 数据库,也可以直接推送到 Elasticsearch 中。
为什么要用它,而不用 Twitter 官方 API?官方 API 只能返回最近约 3200 条推文,需要身份验证,并且有速率限制;Twint 没有这些限制,几乎可以获取某个用户的全部推文。
我可以把抓取的数据可视化吗?可以,该项目支持对抓取数据进行图形可视化,具体设置方法记录在项目的 wiki 中。
“translate”功能有什么用?这是一个实验性参数,可以让你抓取某种语言的推文,并通过 Google 翻译自动翻译成另一种语言,例如 '--lang en --translate --translate-dest it'。
Size
4.5 MB
Stars
16.4K
Age
9y
Commits · 90 Days