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