从命令行存档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。

  1. 安装python(2或3)
  2. pip安装twarc
  3. < > >

    自制(仅限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 twarc
    
    0

    过滤器

    filter命令将使用twitter的状态/filterapi收集发生的tweets。

    $ brew install twarc
    
    1

    请注意,twitter跟踪查询的语法有点 与搜索api中的查询不同。所以请咨询 关于如何最好地表达您正在使用的筛选选项的文档。

    如果要从中收集tweets,请使用follow命令行参数 一个给定的用户id。这包括转发。例如,这将 从CNN收集推文和转发:

    $ brew install twarc
    
    2

    您还可以使用一个边界框来收集tweets。注:前导破折号需要 在边界框中转义,否则将被解释为命令 直线论点!

    $ brew install twarc
    
    3

    use可以使用lang命令行参数传入[iso 6730-1]语言 要限制到的代码,并且由于筛选器流允许您再筛选一个 它是可重复的语言。所以这会收集到提到巴黎或者 用法语或西班牙语制作的马德里:

    $ brew install twarc
    
    4

    如果你结合过滤和跟随选项,他们是或'一起。例如 这将收集使用blacklivesmatter或blm标签的tweets,并且 用户CNN的推文:

    $ brew install twarc
    
    5

    但是,结合位置和语言将有效地生成和。为了 这将收集来自纽约大区的tweets 西班牙语或法语:

    $ brew install twarc
    
    6

    样品

    使用sample命令收听Twitter的状态/sampleAPI,获取最近公共状态的"随机"示例。

    $ brew install twarc
    
    7

    脱水

    dehydrate命令从一个tweets文件生成一个id列表:

    $ brew install twarc
    
    8

    水合物

    twarc的hysed命令将读取tweet标识符文件,并使用twitter的status/lookupapi为它们写出tweet json。

    $ brew install twarc
    
    9

    twitter api的服务条款不鼓励人们在网上提供大量原始twitter数据。这些数据可以用于研究和存档,供当地使用,但不能与世界共享。twitter确实允许tweet标识符的文件被共享,这在您希望提供tweet数据集时非常有用。然后,您可以使用twitter的api对数据进行水合处理,或者为每个标识符检索完整的json。这对于社交媒体研究的验证尤为重要。

    用户

    users命令将返回给定屏幕名称的用户元数据。

    twarc configure
    
    0

    您还可以为它提供用户ID:

    twarc configure
    
    1

    如果需要,还可以使用用户id文件,如果您是 使用下面的followersfriends命令:

    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演示,例如。 时间表转发的有向图

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


热门话题
servlets Java EE+GlassFish:如果用户在其他地方登录,则强制用户注销   java在不更改源代码的情况下添加钩子   安卓 Java TextView Onclick()返回表达式错误   java Excel文件未使用Apache存储内部内存   java getRowCount()和getSelectedColumn()不起作用   无法在java中生成视图绑定。util。Android Gradle插件2.1的NoTouchElementException   Java中的类型转换运算符百分比计算为零   主java中的调用方法   java在Javasound中播放多个示例   java如何知道webDriver成功打开URL   java jmock,每次调用时返回新对象   eclipse使用Java在Selenium WebDriver中生成可执行文件   macos捆绑Java OS X应用程序默认为MacRoman编码   java我应该把我的休息网关变成一个图书馆吗?   java Eclipse插件:查找包含子字符串的行号无效   Java IOException:在Linux上发送UDP数据包时没有可用的缓冲区空间   java无法解析jaxbxjc2中的名称“xjc:globalJavaType”。2.52.罐子   java是否有HibernateAPI来检查是否创建了数据库?