
Uma ferramenta avançada de raspagem do Twitter e OSINT escrita em Python que não usa a API do Twitter, permitindo que você raspe seguidores, seguindo, Tweets e muito mais de um usuário enquanto evade a maioria das limitações da API.

Sem autenticação. Sem API. Sem limites.
Twint é uma ferramenta avançada de raspagem de dados do Twitter escrita em Python que permite extrair Tweets de perfis do Twitter sem usar a API do Twitter.
Twint utiliza os operadores de busca do Twitter para permitir que você extraia Tweets de usuários específicos, extraia Tweets relacionados a certos tópicos, hashtags e tendências, ou filtre informações sensíveis de Tweets como e-mail e números de telefone. Acho isso muito útil, e você pode ser bem criativo com isso também.
Twint também faz consultas especiais ao Twitter, permitindo que você extraia os seguidores de um usuário do Twitter, os Tweets que um usuário curtiu e quem ele segue sem qualquer autenticação, API, Selenium ou emulação de navegador.
Alguns dos benefícios de usar o Twint em vez da API do Twitter:
O Twitter limita a rolagem ao navegar pela linha do tempo do usuário. Isso significa que com .Profile ou .Favorites você conseguirá obter aproximadamente 3200 tweets.
Git:
git clone --depth=1 https://github.com/twintproject/twint.git
cd twint
pip3 install . -r requirements.txt
Pip:
pip3 install twint
ou
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
Adicionado: Dockerfile
Percebi que muitas pessoas estão tendo problemas para instalar (eu inclusive). Por favor, use o Dockerfile temporariamente enquanto investigo isso.
Alguns exemplos simples para ajudar a entender o básico:
twint -u username - Extrai todos os Tweets de um usuário (não inclui retweets mas inclui respostas).twint -u username -s pineapple - Extrai todos os Tweets da linha do tempo do usuário contendo pineapple.twint -s pineapple - Coleta todos os Tweets contendo pineapple de todos os Tweets.twint -u username --year 2014 - Coleta Tweets que foram tweetados antes de 2014.twint -u username --since "2015-12-20 20:30:15" - Coleta Tweets que foram tweetados desde 2015-12-20 20:30:15.twint -u username --since 2015-12-20 - Coleta Tweets que foram tweetados desde 2015-12-20 00:00:00.twint -u username -o file.txt - Extrai Tweets e salva em file.txt.twint -u username -o file.csv --csv - Extrai Tweets e salva como arquivo csv.twint -u username --email --phone - Mostra Tweets que podem ter números de telefone ou endereços de e-mail.twint -s "Donald Trump" --verified - Exibe Tweets de usuários verificados que tweetaram sobre Donald Trump.Mais detalhes sobre os comandos e opções estão localizados no wiki
O Twint agora pode ser usado como um módulo e suporta formatação personalizada. Mais detalhes estão localizados no wiki
import twint
# Configure
c = twint.Config()
c.Username = "realDonaldTrump"
c.Search = "great"
# Run
twint.run.Search(c)
Saída
955511208597184512 2018-01-22 18:43:19 GMT <now> abacaxis são as melhores frutas
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)
Detalhes sobre a configuração do Elasticsearch com o Twint estão localizados no wiki.

Detalhes do Gráfico também estão localizados no wiki.
Estamos desenvolvendo um aplicativo desktop do Twint.

Tentei extrair tweets de um usuário, sei que eles existem mas não estou conseguindo obtê-los
O Twitter pode aplicar shadow-ban em contas, o que significa que seus tweets não estarão disponíveis via busca. Para resolver, passe --profile-full se você estiver usando o Twint via CLI ou, se estiver usando o Twint como módulo, adicione config.Profile_full = True. Observe que esse processo será bastante lento.
Para obter apenas nomes de usuário de seguidores/seguindo
twint -u username --followers
twint -u username --following
Para obter informações de usuário de seguidores/seguindo
twint -u username --followers --user-full
twint -u username --following --user-full
Para obter apenas informações de usuário do usuário
twint -u username --user-full
Para obter informações de usuário de uma lista de usuários
twint --userlist inputlist --user-full
Para obter 100 tweets em inglês e traduzi-los para italiano
twint -u noneprivacy --csv --output none.csv --lang en --translate --translate-dest it --limit 100
ou
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)
Notas:
Se você tiver alguma dúvida, quiser participar de discussões ou precisar de ajuda extra, fique à vontade para se juntar ao nosso canal focado no Twint na equipe OSINT.
twint -g="48.880048,2.385939,1km" -o file.csv --csv - Extrai Tweets de um raio de 1km ao redor de um local em Paris e exporta para um arquivo csv.twint -u username -es localhost:9200 - Envia Tweets para o Elasticsearchtwint -u username -o file.json --json - Extrai Tweets e salva como arquivo json.twint -u username --database tweets.db - Salva Tweets em um banco de dados SQLite.twint -u username --followers - Extrai os seguidores de um usuário do Twitter.twint -u username --following - Extrai quem um usuário do Twitter segue.twint -u username --favorites - Coleta todos os Tweets que um usuário favoritou (coleta aproximadamente 3200 tweets).twint -u username --following --user-full - Coleta informações completas do usuário que uma pessoa seguetwint -u username --timeline - Usa um método eficaz para coletar Tweets do perfil de um usuário (coleta aproximadamente 3200 Tweets, incluindo retweets e respostas).twint -u username --retweets - Usa um método rápido para coletar os últimos 900 Tweets (que inclui retweets) do perfil de um usuário.twint -u username --resume resume_file.txt - Retoma uma busca a partir do último scroll-id salvo.