Skip to main content

社交网络服务抓取工具

项目描述

刮擦

snscrape 是社交网络服务 (SNS) 的抓取工具。它会抓取用户资料、主题标签或搜索等内容,并返回发现的项目,例如相关帖子。

目前支持以下服务:

  • Facebook:用户资料、群组和社区(又名访客帖子)
  • Instagram:用户个人资料、主题标签和位置
  • Mastodon:用户配置文件和嘟嘟声(单线程或线程)
  • Reddit:用户、subreddits 和搜索(通过 Pushshift)
  • 电报:频道
  • Twitter:用户、用户个人资料、主题标签、搜索、推文(单个或围绕线程)、列表帖子和趋势
  • VKontakte:用户资料
  • 微博(新浪微博):用户简介

要求

snscrape 需要 Python 3.8 或更高版本。安装 snscrape 时会自动安装 Python 包依赖项。

请注意,其中一个依赖项 lxml 还需要安装 libxml2 和 libxslt。

安装

pip3 install snscrape

如果要使用开发版:

pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git

用法

命令行界面

snscrape 的 CLI 的通用语法是:

snscrape [GLOBAL-OPTIONS] SCRAPER-NAME [SCRAPER-OPTIONS] [SCRAPER-ARGUMENTS...]

snscrape --help并snscrape SCRAPER-NAME --help提供有关选项和参数的详细信息。snscrape --help还列出了所有可用的刮板。

CLI 的默认输出是每个结果的 URL。

一些值得注意的全局选项是:

  • --jsonl以 JSONL 格式输出。这包括 snscrape 提取的所有信息(例如消息内容、日期时间、图像;细节因刮板而异)。
  • --max-results NUMBER只返回第一个NUMBER结果。
  • --with-entity获取正在抓取的实体上的项目,例如用户或频道。并非所有刮板都支持此功能。(您可以将其与--max-results 0仅一起使用以获取实体信息。)

例子

收集 Jason Scott (@textfiles) 的所有推文:

snscrape twitter-user textfiles

将输出重定向到文件以进行进一步处理通常很有用,例如在 bash 中使用文件名twitter-@textfiles:

snscrape twitter-user textfiles >twitter-@textfiles

要获取带有 #archiveteam 主题标签的最新 100 条推文:

snscrape --max-results 100 twitter-hashtag archiveteam

图书馆

也可以将 snscrape 用作 Python 中的库,但目前没有记录。

问题报告

如果您发现 snscrape 存在问题,请在https://github.com/JustAnotherArchivist/snscrape/issues报告。如果可能,请运行 snscrape-vv并--dump-locals在问题中包含日志输出以及日志中引用的转储文件。请注意,在某些情况下,这些文件可能包含敏感信息,并可能用于识别您的身份(例如,如果服务在其响应中包含您的 IP 地址)。如果您更喜欢私下安排文件传输,只需在问题中提及即可。

执照

本程序是免费软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证条款重新分发和/或修改它,许可证的第 3 版或(由您选择)任何更高版本。

分发此程序的目的是希望它有用,但不提供任何保证;甚至没有对适销性或特定用途适用性的默示保证。有关详细信息,请参阅 GNU 通用公共许可证。

您应该已经收到了一份 GNU 通用公共许可证的副本以及该程序。如果没有,请参阅https://www.gnu.org/licenses/。

项目详情


下载文件

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

源分布

snscrape-0.4.3.20220106.tar.gz (51.8 kB 查看哈希)

已上传 source

内置分布

snscrape-0.4.3.20220106-py3-none-any.whl (59.1 kB 查看哈希)

已上传 py3