我正在尝试创建一个Reddit bot,当提到用户名时,它会获取用户注释并将其发送到API来分析它们并返回请求但是当我尝试下载它们时它会给我
prawcore.exceptions.BadRequest: received 400 HTTP response
这是代码:
if text.startswith('/u/PersonalityInsights'):
print "Mentioned!"
print comment
username = text.split()[1]
print username
if username.startswith('/u/'):
validusername = username[3:]
print validusername
global redditor
redditor = bot.redditor(username)
else:
global redditor
redditor = bot.redditor(username)
file = codecs.open('userscommentsreddit.txt', 'w+', encoding='utf8')
for comment in redditor.get_comments(limit=None):
print comment.body
我正在使用的方法是: get_comments(limit=None)
在PRAW 3中它起作用但在这里它失败了 . 我尝试降低用户名,但失败并出现同样的错误 . 我正在尝试下载评论的帐户是我的:/ u / UnknownDeveloper
我尝试降低用户名,但同样的错误,用以下内容替换for循环: for comment in redditor.comments.new(limit=None):
仍然是错误400
如果您对完整代码感兴趣,请输入GitHub gist链接 .
Praw 4.1.0的版本
1 回答
我知道这已经快一年了,你已经有机会或已经解决了这个问题,但我真的很喜欢做研究和回答SO问题所以我们走了!:
以下是400错误的含义,因此我们在同一页面上:
现在进入实际答案:
get_comments()
调用已被折旧,我假设你根据你也尝试了comments.new()
函数的事实来解决这个问题 .但这根本不重要,因为真正的问题在
redditor = bot.redditor(username)
. 该调用采用原始用户名(不含/u/
)因此,您的代码解决方案是在调用redditor = bot.redditor(username)
之前从用户名变量中删除/u/
,或者您可以通过使用正则表达式识别有效的用户名但仅返回部分来简化操作在/ u /之后 .