前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TWINT:一款Twitter信息爬取工具

TWINT:一款Twitter信息爬取工具

作者头像
FB客服
发布2019-09-11 16:47:35
14.6K0
发布2019-09-11 16:47:35
举报
文章被收录于专栏:FreeBufFreeBuf

Twint是一个用Python写的Twitter抓取工具,允许从Twitter配置文件中抓取推文,不使用Twitter的API。

Twint利用Twitter的搜索语法让您从特定用户那里搜索推文,特定主题,主题标签和相关的推文,或者从推文中挑选敏感信息,如电子邮件和电话号码。

Twint还对Twitter进行了特殊查询,允许您搜索Twitter用户的关注者,用户喜欢的推文,以及他们在API,Selenium或模拟浏览器的情况下关注的用户。

好处

使用Twint和Twitter API的一些好处:

1.可以获取几乎所有的推文(Twitter API限制只能持续3200个推文); 2.快速初始设置; 3.可以匿名使用,无需Twitter注册; 4.没有速率限制

Twitter的限制

Twitter会限制用户可以浏览的时间线。这意味着通过.Profile或者.Favorites你只可以看到~3200条推文。

要求

1.Python 3.6; 2.aiohttp; 3.aiodns; 4.beautifulsoup4; 5.cchardet; 6.elasticsearch; 7.pysocks; 8.pandas (> = 0.23.0); 9.aiohttp_socks; 10.schedule; 11.geopy; 12.fake-useragent。

安装

Git的方法:

代码语言:javascript
复制
git clone https://github.com/twintproject/twint.git
pip3 install -r requirements.txt

PIP:

代码语言:javascript
复制
pip3 install twint

要么

代码语言:javascript
复制
pip3 install --user --upgrade -e git + https//github.com/twintproject/twint.git@origin/master#egg=twint

Pipenv:

代码语言:javascript
复制
pipenv install -e git + https://github.com/twintproject/twint.git#egg=twint
代码语言:javascript
复制
CLI基本示例和组合

一些简单的例子可以帮助您掌握基础知识:

1.twint -u username- 从用户的时间线中删除所有推文。 2.twint -u username -s pineapple- 从包含pineapple的用户时间线中删除所有推文。 3.twint -s pineapple- 从每个人的推文收集每个包含pineapple的推文。 4.twint -u username —year 2014- 收集2014年之前发送推文的推文。 5.twint -u username —since 2015-12-20 - 收集自2015-12-20以来推文的推文。 6.twint -u username -o file.txt - 抓取推文并保存到file.txt。 7.twint -u username -o file.csv —csv - 抓取推文并保存为csv文件。 8.twint -u username —email —phone - 显示可能包含电话号码或电子邮件地址的推文。 9.twint -s “Donald Trump” —verified - 由经过验证的用户显示有关唐纳德特朗普的推文。 10.twint -g=”48.880048,2.385939,1km” -o file.csv —csv - 在巴黎一个地方绕半径1公里的推文将它们导出到csv文件中。 11.twint -u username -es localhost:9200 - 输出推文到Elasticsearch数据库中 12.twint -u username -o file.json —json - 抓取推文并保存为json文件。 13.twint -u username —database tweets.db - 将推文保存到SQLite数据库。 14.twint -u username —followers - Twitter用户的粉丝。 15.twint -u username —following - Twitter用户关注的人。 16.twint -u username —favorites - 收集用户最喜欢的所有推文(收集~3200推文)。 17.twint -u username —following —user-full - 收集一个人关注的完整用户信息 18.twint -u username —profile-full - 使用缓慢但有效的方法从用户的个人资料中收集推文(收集~3200推文,包括转推)。 19.twint -u username —retweets - 使用快速方法从用户的个人资料中收集最近的900个推文(包括转推)。 20.twint -u username —resume resume_file.txt - 从上次保存的scroll-id开始恢复搜索。

有关命令和选项的更多详细信息位于Wiki中

模块示例

Twint可以用作模块并支持自定义格式。

代码语言:javascript
复制
import twint
# Configure
c = twint.Config()
c.Username = "noneprivacy"
c.Search = "#osint"
c.Format = "Tweet id: {id} | Tweet: {tweet}"
# Run
twint.run.Search(c)

输出

代码语言:javascript
复制
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)

存储选项

1.写入文件; 2.CSV; 3.JSON; 4.SQLite; 5.Elasticsearch。

Elasticsearch设置

有关使用Twint设置Elasticsearch的详细信息位于Wiki中。

图形可视化

图表详细信息也位于wiki中。

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

常问问题

我尝试从用户那里抓取推文,我知道它们存在,但我没有得到它们。

Twitter可以禁止影子账户,这意味着他们的推文不会通过搜索获得。要解决此问题,—profile-full请通过CLI使用Twint,如果使用Twint作为模块,则添加config.Profile_full = True。请注意,此过程将非常缓慢。

更多例子

仅获取关注者用户名/以下用户名

代码语言:javascript
复制
twint -u username --followers
twint -u username --following

获取关注者/关注用户的用户信息

代码语言:javascript
复制
twint -u username --followers --user-full
twint -u username --following --user-full

用户列表

仅获取用户的用户信息

代码语言:javascript
复制
twint -u username --user-full

从用户列表中获取用户的用户信息

代码语言:javascript
复制
twint --userlist inputlist --user-full

参考来源:GitHub,FB小编周大涛编译,转载请注明来自FreeBuf.COM

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 好处
  • Twitter的限制
  • 要求
  • 安装
    • Git的方法:
      • PIP:
        • Pipenv:
        • 模块示例
        • 存储选项
        • Elasticsearch设置
        • 图形可视化
        • 常问问题
        • 更多例子
          • 用户列表
          相关产品与服务
          Elasticsearch Service
          腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档