一个高级的twitter抓取和osint工具。
twint的Python项目详细描述
twint-twitter智能工具
< Buff行情>没有身份验证。没有API。没有限制。
twint是一个用python编写的高级twitter抓取工具,它允许在不使用twitter的api的情况下从twitter配置文件中抓取tweets。
twint利用twitter的搜索运营商,让你从特定用户那里搜刮tweets,搜刮与特定主题、标签和趋势相关的tweets,或者从诸如电子邮件和电话号码之类的tweets中整理敏感信息。我觉得这很有用,你也可以用它来获得真正的创造力。
twint还对twitter进行特殊查询,允许您在不进行任何身份验证、api、selenium或浏览器模拟的情况下也可以抓取twitter用户的关注者、用户喜欢的tweets以及他们关注的人。
tl;灾难恢复的好处
使用twint vs twitter api的一些好处:
- 几乎可以获取所有的tweets(twitter api仅限于最近3200条tweets);
- 快速初始设置;
- 可匿名使用,无需Twitter注册;
- 无速率限制
Twitter施加的限制
twitter在浏览用户时间线时限制滚动。这意味着,使用.profile
或.favorites
您将能够获得~3200条推文。
要求
- 巨蟒3.6;
- aiohttp;
- aiodns;
- 美化组4;
- cchardet;
- 弹性搜索;
- pysocks;
- 熊猫(>;=0.23.0);
- aiohttp_袜子;
- 日程安排;
- Geopy;
- 假冒用户代理。
安装
Git:
git clone https://github.com/twintproject/twint.git pip3 install -r requirements.txt
管道:
pip3 install twint
或
pip3 install --user --upgrade -e git+https://github.com/twintproject/twint.git@origin/master#egg=twint
管道变量:
pipenv install -e git+https://github.com/twintproject/twint.git#egg=twint
cli基本示例和组合框
一些简单的例子可以帮助您了解基本知识:
twint-u用户名
-从用户的日程表中删除所有tweets。twint-u username-s菠萝
-从包含菠萝的用户时间线中删除所有tweetstwint-s菠萝
-从每个人的tweets中收集每个包含菠萝的tweet。twint-u用户名——2014年
-收集2014年之前发过的推文。twint-u用户名——自2015年12月20日起d自2015年12月20日起。
twint-u username-o file.txt
-删除tweets并保存到file.txt。twint-u username-o file.csv--csv
-抓取tweets并另存为csv文件。twint-u用户名--电子邮件--电话
-显示可能有电话号码或电子邮件地址的推文。twint-s"donald trump"--已验证
-显示已验证用户发送的有关donald trump的推文。twint-g="48.880048,2.385939,1km"-o file.csv--csv
-从巴黎某个地方周围1km半径范围内刮下tweets并将其导出到csv文件。twint-u用户名-es localhost:9200
-将tweets输出到elasticsearchtwint-u username-o file.json--json
-scrape tweets并另存为json文件。twint-u用户名--database tweets.db
-将tweets保存到sqlite数据库。twint-u用户名——关注者
-抓取Twitter用户的关注者。twint-u用户名——跟踪
-抓取twitter用户跟踪的用户。twint-u用户名--收藏夹
-收集用户最喜欢的所有tweet(收集~3200条tweet)。twint-u用户名--跟踪--用户已满
-收集用户跟踪的完整信息twint-u username--profile full
-使用一种缓慢但有效的方法从用户的配置文件中收集tweets(收集约3200条tweets,包括转发)。twint-u用户名——转发
-使用快速方法从用户配置文件中收集最后900条推文(包括转发)。twint-u用户名——resume resume_file.txt
-从上次保存的scroll-id开始继续搜索。
有关命令和选项的更多详细信息,请参见wiki
模块示例
Twint现在可以用作模块并支持自定义格式。有关更多详细信息,请参见wiki
importtwint# Configurec=twint.Config()c.Username="noneprivacy"c.Search="#osint"c.Format="Tweet id: {id} | Tweet: {tweet}"# Runtwint.run.Search(c)< Buff行情>
输出
955511208597184512 2018-01-22 18:43:19 GMT<;现在>;菠萝是最好的水果
importtwintc=twint.Config()c.Username="noneprivacy"c.Custom["tweet"]=["id"]c.Custom["user"]=["bio"]c.Limit=10c.Store_csv=Truec.Output="none"twint.run.Search(c)
存储选项
- 写入文件;
- csv;
- json;
- sqlite;
- 弹性搜索。
弹性搜索设置
有关使用twint设置elasticsearch的详细信息,请参见wiki
图形可视化
我们正在开发Twint桌面应用程序。
FAQ
< Buff行情>我试着从用户那里获取tweets,我知道它们存在,但我没有得到它们
twitter可以隐藏ban账户,这意味着他们的tweets将无法通过搜索获得。要解决此问题,请通过--profile full
如果通过cli使用twint,或者如果使用twint作为模块,请添加config.profile_full=true
。请注意,此过程将非常缓慢。
更多示例
跟随者/跟随者 < Buff行情>
只获取跟随者用户名/跟随用户名
twint-u用户名——关注者
twint-u用户名--跟随
获取f的用户信息ollowers/跟随用户
twint-u用户名--关注者--用户已满
twint-u用户名--跟随--用户已满
用户列表
< Buff行情>只获取用户的用户信息
twint-u用户名--用户已满
从用户列表中获取用户信息
twint--userlist inputlist--user full
特色博客文章:
- 如何使用twint作为osint工具
- 由空字节制作的基本教程
- 使用nlp分析tweets-in-minutes with-spark、optimus和twint
- 将tweets加载到kafka和neo4j中
联系人
如果您有任何问题,想参与讨论或需要额外帮助,欢迎您加入我们的Twint Focusedow">松弛服务器
如果您对osint感兴趣,并且仍在寻求帮助或建议,请加入osint社区,网址是:osint team(有一个特定的twint频道)