跳转到主要内容

一个命令行工具和库,用于从社交媒体分析工具包(SMAT)获取数据。

项目描述

SMAT-CLI

提供从社交媒体分析工具包(SMAT)(SMAT)获取数据的命令行工具,以及一个用于从您自己的代码中与SMAT交互的库。

Python Versions Latest Release Pipeline Status

社交媒体分析工具包(SMAT)是一个资源,允许活动家、记者、研究人员和其他社会公益组织从各种在线平台收集有关仇恨、虚假信息、极端主义的信息。SMAT团队提供了出色的服务,值得您支持!如果您能的话,请访问他们的Open Collective页面以支持他们。

SMAT-CLI是一个工具,使从API获取这些信息变得容易,无论是在终端还是在您的应用程序中。

安装

OS X & Linux

pip install smat-cli

尽管如此,我建议使用Pipx将其作为系统工具安装。

pipx install smat-cli

Windows

即将推出!

使用示例

假设您想收集2021年1月6日至3月1日之间Telegram上的1000篇帖子。您可以使用content命令这样做。

smat content -s telegram -l 1000 --since 2021-01-06 --until 2021-03-01 trump

如果您需要一些汇总数据,您可以使用timeseries命令从2021年1月6日至3月1日获取提及特朗普的帖子数量,并将其汇总到每日桶中,您可以使用以下命令。

smat timeseries -s telegram -i day --since 2021-01-06 --until 2021-03-01 trump

您还可以按数据中存在的任何任意键进行聚合。要了解哪些键可用,您可以检查content命令的结果。一旦您知道了要聚合的键,您可以使用activity,例如,从2022年1月6日到3月1日,统计每个Telegram频道中包含“特朗普”一词的帖子数量。

smat activity -s telegram -a channelusername --since 2021-01-06 --until 2021-03-01 trump

所有上述命令都按行打印JSON格式的输出到stdout,因此您可以按常规方式将结果重定向到文件。

smat content -s telegram -l 1000 --since 2021-01-06 --until 2021-03-01 trump >> data.ndjson

您还可以指定不同的输出格式。例如,如果您希望结果为JSON而不是JSONlines,可以传递--format json。这是使用timeseries时格式化变更点数据的当前唯一方法。

smat --format json content -s telegram -l 1000 --since 2021-01-06 --until 2021-03-01 trump > data.json

此外,此包可以通过从smat_cli导入Smat并在程序内部查询API的方式在另一个应用程序中使用。

from smat_cli import Smat
api = Smat()
data = api.content(term="trump", site="telegram", ...)
for d in data:
    print(d["message"])

开发环境设置

此项目使用Poetry,代码使用Black进行格式化。

可以通过Tox运行测试,它会运行Python 3.7、3.8、3.9、3.10版本的测试。为此,必须安装所有这些Python版本。如果需要,已在test_runner目录中包含了一个Dockerfile。

poetry install
tox

版本发布历史

  • 0.1.3
    • 添加新站点:TikTok、Rutube、Truth Social (@benzonip)
    • 添加了对Python 3.11的支持
  • 0.1.2
    • 更新了包信息和README
    • 添加了格式化器和JsonFormatter
  • 0.1.1
    • 更新了包信息和README
  • 0.1.0
    • 初始发布

丹尼尔·霍斯特曼 – @dhostermandaniel@danielhosterman.com

Unlicense许可下分发。有关更多信息,请参阅LICENSE

https://gitlab.com/dhosterman

贡献

  1. 将其叉到(https://github.com/yourname/yourproject/fork
  2. 创建您的功能分支(git checkout -b feature/fooBar
  3. 使用Black格式化您的代码
  4. 确保有针对您的更改的测试,并且它们通过
  5. 提交您的更改(git commit -am 'Add some fooBar'
  6. 将更改推送到分支(git push origin feature/fooBar
  7. 创建新的拉取请求

贡献者

  • 彼得·本佐尼 (@benzonip)

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

smat_cli-0.1.3.tar.gz (8.1 kB 查看散列)

上传时间:

构建分布

smat_cli-0.1.3-py3-none-any.whl (8.2 kB 查看散列)

上传时间: Python 3

由以下支持