📅  最后修改于: 2023-12-03 15:34:03.638000             🧑  作者: Mango
如果你想在Reddit上与其他用户交流,那么获取评论的永久链接是一项非常重要的任务。Python PRAW是一种非常有用的工具,可用于在Reddit中获取评论的永久链接。本文将介绍如何使用Python和PRAW包从Reddit中获取评论的永久链接。
PRAW是Python Reddit API Wrapper的缩写,是Reddit的非官方Python包。通过PRAW包,我们可以轻松地在Python中与Reddit进行交互,包括浏览、发布、修改、删除和搜索帖子,查找特定主题等。
在使用PRAW包之前,必须先安装它。打开终端并运行以下命令:
pip install praw
要使用PRAW包,必须先通过Reddit API获得访问令牌。访问Reddit API步骤如下:
转到Reddit Apps页面 并创建一个应用。应用程序类型可以是Web应用程序或其他应用程序。在创建应用程序时,Reddit会分配一个客户端ID和一个客户端机密。记下这两个值,稍后在Python代码中使用。
转到Reddit授权页面,以获取一个授权代码。在浏览器中,打开以下链接:
https://www.reddit.com/api/v1/authorize?client_id=CLIENT_ID&response_type=code&state=RANDOM_STRING&redirect_uri=URI&duration=temporary&scope=SCOPE_STRING
说明:
CLIENT_ID
是在第1步中获得的客户端IDRANDOM_STRING
是一个随机生成的字符串,可用于保护您的应用程序免受CSRF攻击。URI
是重定向URI,接收Reddit的授权代码以便交换令牌。可以是任何URI,但必须与在Reddit应用程序页面创建应用程序时使用的URI匹配。SCOPE_STRING
是请求的访问范围,指定您的应用程序可以访问的资源。在本教程中,我们将使用“read”的范围,它允许我们从Reddit API读取用户及其帖子的数据。点击链接将向用户询问授权。用户点击“允许”后,浏览器将重定向到上述URI,并在URI的查询参数中包含一个授权代码。将此授权代码复制到Python代码中。
使用授权代码从Reddit API获取令牌。从终端运行以下命令,将获取Reddit API响应,并返回一个带有访问令牌的JSON。
curl -X POST -d "grant_type=authorization_code&code=CODE&redirect_uri=URI" -u "CLIENT_ID:CLIENT_SECRET" https://www.reddit.com/api/v1/access_token
说明:
CODE
是在第2步中获取的授权代码。URI
是在第2步中使用的URI。CLIENT_ID
和CLIENT_SECRET
是在第1步中获取的凭据。运行命令将返回一个JSON响应,其中包含访问令牌。将此访问令牌复制到Python代码中,然后运行以下代码。
要从Reddit中获取评论的永久链接,我们需要使用PRAW包。打开Python IDE并输入以下代码:
import praw
reddit = praw.Reddit(client_id='CLIENT_ID', client_secret='CLIENT_SECRET', access_token='ACCESS_TOKEN', user_agent='USER_AGENT')
comment = reddit.comment('COMMENT_ID')
permalink = comment.permalink()
print(permalink)
说明:
CLIENT_ID
和CLIENT_SECRET
是在第1步中获得的客户端ID和秘钥。ACCESS_TOKEN
是在第3步中获得的访问令牌。USER_AGENT
是任何字符串,用于标识您的应用程序。Reddit建议使用以下格式:<platform>:<app ID>:<version string> (by /u/<reddit username>)
。COMMENT_ID
是要获取其永久链接的评论的ID。运行代码后,将输出评论的永久链接。将其复制到浏览器中,即可查看评论。
以上就是Python PRAW包在Reddit中获取评论的永久链接的方法。PRAW是一种非常有用的Python包,可用于在Reddit中获取各种数据,如帖子、评论、用户等。如果需要在Python中与Reddit进行交互,则使用PRAW是非常好的选择。