亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

哪些 praw 命令需要網絡請求?

哪些 praw 命令需要網絡請求?

至尊寶的傳說 2022-08-25 13:47:47
我是對的,這個代碼的每一行只發出一個請求?sm = reddit.submission(url="...")sm.comment_sort = 'top'sm.comments.replace_more(1)comments = sm.comments.list()我知道Reddit api在每600秒時間段內提供600個請求。我需要此信息才能更有效地使用 api。
查看完整描述

1 回答

?
慕妹3242003

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 的一個關鍵功能是它為您處理速率限制,確保您在不違反速率限制的情況下盡可能頻繁地發出請求。


查看完整回答
反對 回復 2022-08-25
  • 1 回答
  • 0 關注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號