从命令行存档tweets
twarc的Python项目详细描述
TWARC
twarc是一个命令行工具和python库,用于归档twitter json数据。 每个tweet都表示为一个json对象,即 准确地返回 Twitter API。tweets存储为面向行的json。TWARC将处理 twitter api的速率限制 为你。除了让你收集tweets,twarc还可以帮助你 收集用户、趋势和水合物推特ID。
twarc是作为记录now的一部分而开发的。 由梅隆基金会资助的项目。
安装
在使用TWARC之前,您需要在 apps.twitter.com。一旦你创建了 应用程序,记下使用者密钥和使用者机密,然后单击 生成访问令牌和访问令牌机密。有了这四个变量 您已准备好开始使用TWARC。
- 安装python(2或3)
- pip安装twarc < > >
自制(仅限MacOS)
对于MacOS用户,您可以通过:
$ brew install twarc
快速启动:
首先你需要告诉twarc你的应用程序api密钥和 授予访问一个或多个Twitter帐户的权限:
twarc configure
然后尝试搜索:
twarc search blacklivesmatter > search.jsonl
或者你想在微博出现的时候收集它们?
twarc filter blacklivesmatter > stream.jsonl
有关这些命令和其他命令的详细信息,请参见下文。
用法
配置
一旦你有了你的应用程序密钥,你就可以告诉TWARC他们用的是什么
配置
命令。
twarc configure
这将把您的凭证存储在您家中名为.twarc
的文件中。
所以你不必一直输入它们。如果你愿意供应
您可以直接在环境中设置它们(消费者密钥
,
消费者密钥
,访问令牌
,访问令牌
)或使用命令行
选项(--consumer_key
,--consumer_secret
,--access_token
,
--访问令牌机密
)。
搜索
这使用twitter的搜索/tweets来下载与给定查询匹配的预先存在的tweets。
twarc search blacklivesmatter > tweets.jsonl
需要注意的是search
将返回在
Twitter的搜索API设置的7天窗口。如果这看起来像一个小
窗口,是的,但是你可能对收集tweets感兴趣
使用下面的过滤器和
示例命令。
熟悉twitter搜索语法的最好方法是 Twitter的高级搜索并复制和 粘贴结果查询f从搜索框。例如,这里有一个 搜索包含 #发送到Deray的BlackLivesMatter或BLM标签。
twarc search '#blacklivesmatter OR #blm to:deray' > tweets.jsonl
twitter试图对tweet的语言进行编码,您可以限制搜索 如果您想使用特定语言,请使用
twarc search '#blacklivesmatter' --lang fr > tweets.jsonl
您还可以搜索具有给定位置的tweets,例如tweets 提到离弗格森中心1英里的布莱克利夫斯马特, 密苏里州:
twarc search blacklivesmatter --geocode 38.7442,-90.3054,1mi > tweets.jsonl
如果在使用--geocode
时未提供搜索查询,则将获得所有tweets
与该位置和半径相关:
$ brew install twarc0
过滤器
filter
命令将使用twitter的状态/filterapi收集发生的tweets。
$ brew install twarc1
请注意,twitter跟踪查询的语法有点 与搜索api中的查询不同。所以请咨询 关于如何最好地表达您正在使用的筛选选项的文档。
如果要从中收集tweets,请使用follow
命令行参数
一个给定的用户id。这包括转发。例如,这将
从CNN收集推文和转发:
$ brew install twarc2
您还可以使用一个边界框来收集tweets。注:前导破折号需要 在边界框中转义,否则将被解释为命令 直线论点!
$ brew install twarc3
use可以使用lang
命令行参数传入[iso 6730-1]语言
要限制到的代码,并且由于筛选器流允许您再筛选一个
它是可重复的语言。所以这会收集到提到巴黎或者
用法语或西班牙语制作的马德里:
$ brew install twarc4
如果你结合过滤和跟随选项,他们是或'一起。例如 这将收集使用blacklivesmatter或blm标签的tweets,并且 用户CNN的推文:
$ brew install twarc5
但是,结合位置和语言将有效地生成和。为了 这将收集来自纽约大区的tweets 西班牙语或法语:
$ brew install twarc6
样品
使用sample
命令收听Twitter的状态/sampleAPI,获取最近公共状态的"随机"示例。
$ brew install twarc7
脱水
dehydrate
命令从一个tweets文件生成一个id列表:
$ brew install twarc8
水合物
twarc的hysed
命令将读取tweet标识符文件,并使用twitter的status/lookupapi为它们写出tweet json。
$ brew install twarc9
twitter api的服务条款不鼓励人们在网上提供大量原始twitter数据。这些数据可以用于研究和存档,供当地使用,但不能与世界共享。twitter确实允许tweet标识符的文件被共享,这在您希望提供tweet数据集时非常有用。然后,您可以使用twitter的api对数据进行水合处理,或者为每个标识符检索完整的json。这对于社交媒体研究的验证尤为重要。
用户
users
命令将返回给定屏幕名称的用户元数据。
twarc configure
0
您还可以为它提供用户ID:
twarc configure
1
如果需要,还可以使用用户id文件,如果您是
使用下面的followers
和friends
命令:
twarc configure
2
< h3>追随者follower s
命令将使用twitter的follower id api收集每个请求的一个用户名的follower用户id,指定为参数:
twarc configure
3
结果将为每行包含一个用户id。响应顺序是 按时间倒序排列,或先是最近的关注者。
朋友
就像followers
命令一样,friend s
命令将使用twitter的friend id api来收集每个请求的friend用户id,该api指定为参数:
twarc configure
4
趋势
trends
命令允许您从twitter的api中检索有关趋势标签的信息。您需要提供a地球上的何处标识符(woeid
)来指示您感兴趣的趋势。例如,下面是如何了解圣路易斯的当前趋势:
twarc configure
5
使用1的woeid
将返回整个星球的趋势:
twarc configure
6
如果您不确定使用什么作为woeid
在Twitter跟踪趋势的所有地方中:
twarc configure
7
如果您有地理位置,可以使用它而不是woedd
twarc configure
8
在幕后,twarc将使用twitter的趋势/最近的api查找位置,以找到最近的woeid
时间轴
timeline
命令将使用twitter的用户时间线api来收集由屏幕名称指示的用户最近发布的tweets。
twarc configure
9
您还可以使用用户ID查找用户:
twarc search blacklivesmatter > search.jsonl
0
转发
您可以获得给定tweet id的转发,如下所示:
twarc search blacklivesmatter > search.jsonl
1
回复
不幸的是,twitter的api目前不支持对 鸣叫。因此,twarc通过使用搜索api来近似它。自从搜索api 不支持获取超过一周的tweets twarc只能获取所有 回复上周发送的推文。
如果您想获得对给定tweet的回复,您可以:
twarc search blacklivesmatter > search.jsonl
2
使用--recursive
选项还将获取对回复的回复,以及
引用。对于大型线程,这可能需要很长时间才能完成,因为
由搜索API限制速率。
twarc search blacklivesmatter > search.jsonl
3
列表
要获取列表中的用户,可以将列表URL与
列表成员
命令:
twarc search blacklivesmatter > search.jsonl
4
用作库
如果需要,可以将twarc程序化地用作库来收集
鸣叫。您首先需要创建一个twarc
实例(使用您的twitter
凭证),然后使用它遍历搜索结果,筛选
结果或查找结果。
twarc search blacklivesmatter > search.jsonl
5
你也可以对匹配一个音轨的新tweets的过滤流执行同样的操作 关键词
twarc search blacklivesmatter > search.jsonl
6
或位置:
twarc search blacklivesmatter > search.jsonl
7
或用户ID:
twarc search blacklivesmatter > search.jsonl
8
类似地,您可以通过传入id列表来增加tweet标识符 或发电机:
twarc search blacklivesmatter > search.jsonl
9
实用程序
在utils目录中有一些简单的命令行实用程序 使用面向行的json,比如将存档的tweets打印为 文本或HTML,提取用户名、引用的URL等。 手边的脚本请发送请求。
当你有一些tweets时,你可以创建一个基本的tweets墙:
twarc filter blacklivesmatter > stream.jsonl
0
你可以创建一个关于nasa的tweets的单词云:
twarc filter blacklivesmatter > stream.jsonl
1
如果您使用回复收集了一些tweets,那么可以创建一个静态d3
V通过:
twarc filter blacklivesmatter > stream.jsonl
2
也可以按用户合并tweets,以便查看中心帐户:
twarc filter blacklivesmatter > stream.jsonl
3
如果你想在像gephi这样的程序中使用网络图, 您可以使用以下命令生成gexf文件:
twarc filter blacklivesmatter > stream.jsonl
4
gender.py是一个过滤器,允许您根据对 作者的性别。例如,你可以过滤掉所有 看起来像是来自女性,为她们创造一个词云:
twarc filter blacklivesmatter > stream.jsonl
5
您可以从提供地理坐标的tweets中输出geojson。
twarc filter blacklivesmatter > stream.jsonl
6
或者,您可以导出带有质心的geojson以替换边界框:
twarc filter blacklivesmatter > stream.jsonl
7
如果导出带有质心的geojson,可以添加一些随机模糊:
twarc filter blacklivesmatter > stream.jsonl
8
要根据地理坐标的存在或不存在筛选推文(或地点,请参见API文档):
twarc filter blacklivesmatter > stream.jsonl
9
通过geojson围栏过滤tweets(需要shapelyshapely):
twarc configure
0
如果您怀疑您的tweets中有重复内容,可以对其进行重复数据消除:
twarc configure
1
您可以按ID排序,这类似于按时间排序:
twarc configure
2
您可以过滤掉某个日期之前的所有tweet(例如,如果您感兴趣的事件之前的另一个事件使用了标签):
twarc configure
3
您可以获得所用客户端的HTML列表:
twarc configure
4
如果要删除转发:
twarc configure
5
或取消排序URL(需要unsrtn):
twarc configure
6
一旦您取消排序您的网址,您可以得到一个排名名单最推特网址:
twarc configure
7
TWARC报告
一些用于生成csv或json输出的实用程序脚本
与d3.js一起使用可视化可以在
twarc报告项目。这个
utildirected.py
以前是twarc的一部分,现在已经转移到twarc report
d3graph.py
每个脚本还可以生成一个d3可视化的html演示,例如。 时间表或 转发的有向图