社交网络服务抓取工具
项目描述
刮擦
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/。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。