1 回答
TA贡献1824条经验 获得超6个赞
此代码段发出两个请求。首先,当您在第 3 行访问时,它会从 Reddit API 加载提交的评论。然后,在同一行上,调用将只替换一个对象,这会发出额外的请求。sm.commentsreplace_more(1)MoreComments
要确定某些 PRAW 代码发出的网络请求数,请查看日志记录文档中的部分。将该网页中的此代码段添加到脚本顶部:
import logging
handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)
logger = logging.getLogger('prawcore')
logger.setLevel(logging.DEBUG)
logger.addHandler(handler)
然后,在运行脚本时,你将看到描述所发出的每个请求的调试输出。对于您的代码段,我的输出如下所示:
Fetching: GET https://oauth.reddit.com/comments/fgi5bd/
Data: None
Params: {'limit': 2048, 'sort': 'top', 'raw_json': 1}
Response: 200 (116926 bytes)
Fetching: POST https://oauth.reddit.com/api/morechildren/
Data: [('api_type', 'json'), ('children', 'fk5u680,fk5tgxt,<--snip-->,fk5u67w,fk5ug3f'), ('link_id', 't3_fgi5bd'), ('sort', 'top')]
Params: {'raw_json': 1}
Sleeping: 0.21 seconds prior to call
Response: 200 (32753 bytes)
以“Fetching”开头的每一行都是另一个网络请求,后续行进一步描述了该请求。
框架挑战
你说
我知道Reddit api在每600秒时间段内提供600个请求。我需要此信息才能更有效地使用 api。
虽然我不能确切地知道你所说的“更有效地使用api”是什么意思,但如果你担心你会超过速率限制,你根本不需要担心这一点。PRAW 的一个关键功能是它为您处理速率限制,确保您在不违反速率限制的情况下尽可能频繁地发出请求。
添加回答
举报