Giter Site home page Giter Site logo

laszlo-zsolt-kiss / twint Goto Github PK

View Code? Open in Web Editor NEW

This project forked from twintproject/twint

0.0 0.0 0.0 69.98 MB

An advanced Twitter scraping & OSINT tool written in Python that doesn't use Twitter's API, allowing you to scrape a user's followers, following, Tweets and more while evading most API limitations.

License: MIT License

Python 100.00%

twint's Introduction

TWINT - Twitter Intelligence Tool

2 3

PyPI Build Status Python 3.5|3.6 GitHub license

No authentication. No API. No limits.

Formerly known as Tweep, 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:

  • Can fetch almost all Tweets (Twitter API limits to last 3200 Tweets only)
  • Fast initial setup
  • Can be used anonymously and without Twitter sign up
  • No rate limitations

Requirements

  • Python 3.6

Installing

Stable version

Pip:

pip3 install twint

Pipenv:

pipenv install twint

Development version

Git:

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

Pip:

pip3 install --upgrade -e git+https://github.com/twintproject/twint.git@origin/master#egg=twint

Pipenv:

pipenv install -e git+https://github.com/twintproject/twint.git#egg=twint

CLI Basic Examples and Combos

A few simple examples to help you understand the basics:

  • twint -u username - Scrape all the Tweets from user's timeline.
  • twint -u username -s pineapple - Scrape all Tweets from the user's timeline containing pineapple.
  • twint -s pineapple - Collect every Tweet containing pineapple from everyone's Tweets.
  • twint -u username --year 2014 - Collect Tweets that were tweeted before 2014.
  • twint -u username --since 2015-12-20 - Collect Tweets that were tweeted since 2015-12-20.
  • twint -u username -o file.txt - Scrape Tweets and save to file.txt.
  • twint -u username -o file.csv --csv - Scrape Tweets and save as a csv file.
  • twint -u username --email --phone - Show Tweets that might have phone numbers or email addresses.
  • twint -s "Donald Trump" --verified - Display Tweets by verified users that Tweeted about Donald Trump.
  • twint -g="48.880048,2.385939,1km" -o file.csv --csv - Scrape Tweets from a radius of 1km around a place in Paris and export them to a csv file.
  • twint -u username -es localhost:9200 - Output Tweets to Elasticsearch
  • twint -u username -o file.json --json - Scrape Tweets and save as a json file.
  • twint -u username --database tweets.db - Save Tweets to a SQLite database.
  • twint -u username --followers - Scrape a Twitter user's followers.
  • twint -u username --following - Scrape who a Twitter user follows.
  • twint -u username --favorites - Collect all the Tweets a user has favorited.
  • twint -u username --following --user-full - Collect full user information a person follows
  • twint -u username --profile-full - Use a slow, but effective method to gather Tweets from a user's profile (Gathers ~3200 Tweets, Including Retweets).
  • twint -u username --retweets - Use a quick method to gather the last 900 Tweets (that includes retweets) from a user's profile.
  • twint -u username --resume 10940389583058 - Resume a search starting from the specified Tweet ID.

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 = "noneprivacy"
c.Search = "#osint"
c.Format = "Tweet id: {id} | Tweet: {tweet}"

# 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

  • Write to file
  • CSV
  • JSON
  • SQLite
  • Elasticsearch

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

Contact

Follow @twintproject on Twitter to get the latest news and updates!

If you have any questions, want to join in on discussions, or need extra help, you are welcome to join our OSINT focused Slack server.

twint's People

Contributors

4sakura avatar aldou avatar boogheta avatar cbjrobertson avatar decapstrike avatar filletofish avatar flemish4 avatar gdelavald avatar haccer avatar hpiedcoq avatar joseccnet avatar kodoyosa avatar leiz avatar mehdzor avatar nestor75 avatar pielco11 avatar prabod avatar sshinol avatar tkmru avatar wardnath avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.