📜  psaw 文档 (1)

📅  最后修改于: 2023-12-03 14:45:40.889000             🧑  作者: Mango

PSAW 文档介绍

简介

PSAW是一个基于Pushshift.io提供的API而开发的Python包,旨在提供更灵活、更高效的获取Reddit数据的方式。它使用了异步IO技术,并支持复合查询,可以方便地从Reddit论坛中获取大量的数据。

安装

通过pip可以轻松地安装PSAW:

pip install psaw
快速起步

首先,你需要导入 PushshiftAPI 类:

from psaw import PushshiftAPI

api = PushshiftAPI()

你可以通过以下方式获取一些帖子:

from psaw import PushshiftAPI

api = PushshiftAPI()

results = api.search_submissions(subreddit='askreddit',
                                  filter=['id', 'title', 'permalink', 'num_comments'],
                                  limit=25)

for post in results:
    print(post)
支持的查询参数

以下是介绍完整的查询参数及其使用方式的介绍:

| 参数 | 类型 | 描述 | 默认值 | | --- | --- | --- | --- | | after | int 或 datatime | 返回后于该时间的结果。 | None | | before | int 或 datatime | 返回早于该时间的结果。 | None | | limit | int | 返回结果的数量。 | 100 | | filter | 数组 | 返回结果的属性列表 | None | | sort | 字符串 | 对结果排序的方式。 可选值:'desc'(降序),'asc'(升序) | 'desc' | | subreddit | 字符串 | 指定Reddit论坛的名称。 | None| | author | 字符串 | 指定作者名。 | None | | selftext | 字符串 | 包含该文本的帖子。 | None | | title | 字符串 | 标题包含该文本的帖子。 | None | | ids | 数组 | 指定的帖子列表。 | None | | url | 字符串 | 对 URL 包含该文本的帖子。 | None |

返回结果的属性

以下是可在返回结果中使用的属性列表:

| 属性 | 描述 | | --- | ------- | | id | 帖子 ID | | title | 帖子标题 | | selftext | 帖子内容 | | created_utc | 帖子发表时间(UTC 时区)| | permalink | 帖子链接 | | num_comments | 帖子的评论数量 | | score | 帖子的得分(点赞数量) | | upvote_ratio | 帖子的点赞率 | | subreddit | 帖子所在论坛名称 | | author | 帖子作者的用户名 |

更多示例

获取一个 subreddit 中所有帖子:

from psaw import PushshiftAPI

api = PushshiftAPI()

submissions = api.search_submissions(subreddit='learnpython', limit=None)

for submission in submissions:
    # do something with submission
    print(submission.title, submission.author)

获取一个特定作者的帖子:

from psaw import PushshiftAPI

api = PushshiftAPI()

submissions = api.search_submissions(author='spez')

for submission in submissions:
    # do something with submission
    print(submission.title)

获取所有与 Big Data 相关的帖子:

from psaw import PushshiftAPI

api = PushshiftAPI()

submissions = api.search_submissions(q='big data')

for submission in submissions:
    # do something with submission
    print(submission.title)

获取最近一个月"learnpython"中的帖子:

from psaw import PushshiftAPI

api = PushshiftAPI()

before_month = int(time.time())
after_month = int(before_month - 30 * 24 * 60 * 60)  # 30天前

submissions = api.search_submissions(subreddit='learnpython',
                                      after=after_month,
                                      before=before_month,
                                      limit=None)

for submission in submissions:
    # do something with submission
    print(submission.title)
结论

PSAW提供了许多灵活和高效的方法来获取Reddit中的数据。 无论你是一个想要获取Reddit数据并进行分析的研究人员,还是想要使用Reddit数据构建自己的精彩程序的开发人员,PSAW可能是一个很好的选择。 它易于使用,并且已经被许多人证明是一个功能强大的Reddit API客户端库。