praw.errors.Forbidden:使用Reddit get_flair_list时出现HTTP错误

时间:2016-03-15 07:01:34

标签: python-2.7 reddit praw

我正在尝试获取每个Reddit帖子的评论。

这是我用来获得天赋列表的方式:

import praw
import webbrowser

r = praw.Reddit('OAuth testing example by u/_Daimon_ ver 0.1 see '
             'https://praw.readthedocs.org/en/latest/'
             'pages/oauth.html for source')

r.set_oauth_app_info(client_id='[client id]',
                 client_secret='[client secret]',
                  redirect_uri='http://localhost/authorize_callback')

url = r.get_authorize_url('uniqueKey', 'modflair', True)
webbrowser.open(url)

然后我从返回的url中获取了代码,并将代码放入访问信息中,如下所示:

access_information = r.get_access_information('[returned code]')

然后,当我尝试像PRAW教程一样调用get_fliar_list()时,像这样:

item = next(r.get_subreddit('travel').get_flair_list())

它给了我一个错误,显示:

  

追踪(最近一次通话):     文件“”,第1行,in     在get_content中输入文件“/Library/Python/2.7/site-packages/praw-3.4.0-py2.7.egg/praw/init.py”,第565行       page_data = self.request_json(url,params = params)     在request_json中的文件“”,第2行     在raise_api_exceptions中输入文件“/Library/Python/2.7/site-packages/praw-3.4.0-py2.7.egg/praw/decorators.py”,第116行       return_value = function(* args,** kwargs)     在request_json中输入文件“/Library/Python/2.7/site-packages/praw-3.4.0-py2.7.egg/praw/init.py”,第620行       retry_on_error = retry_on_error)     在_request中输入文件“/Library/Python/2.7/site-packages/praw-3.4.0-py2.7.egg/praw/init.py”,第452行       _raise_response_exceptions(响应)     在_raise_response_exceptions中输入文件“/Library/Python/2.7/site-packages/praw-3.4.0-py2.7.egg/praw/internal.py”,第208行       提出禁止(_raw =回复)   praw.errors.Forbidden:HTTP错误

以下是该PRAW教程的链接:PRAW tutorial

你知道如何解决这个问题吗?如何调用get_flair_list()来获取Reddit帖子的所有注释?

1 个答案:

答案 0 :(得分:0)

这里可能会发生一些事情。

第一个问题(也是最有可能的)是你登录错了。

r = praw.Reddit('OAuth testing example by u/_Daimon_ ver 0.1 see '
         'https://praw.readthedocs.org/en/latest/'
         'pages/oauth.html for source')

不要这样,永远

即使此命令中的语法正确(您没有逗号),这也会使您的代码难以阅读。最可读的方法是r = praw.Reddit('OAuth-testing')OAuth-testing位可以是您想要的任何内容,只要它与praw.ini文件中的相同即可。),然后设置praw.ini。 1}}文件:

[DEFAULT]
# A boolean to indicate whether or not to check for package updates.
check_for_updates=True

# Object to kind mappings
comment_kind=t1
message_kind=t4
redditor_kind=t2
submission_kind=t3
subreddit_kind=t5

# The URL prefix for OAuth-related requests.
oauth_url=https://oauth.reddit.com

# The URL prefix for regular requests.
reddit_url=https://www.reddit.com

# The URL prefix for short URLs.
short_url=https://redd.it

[OAuth-testing]
user_agent=USER-AGENT-HERE
username=REDDIT-ACCOUNT-USERNAME
password=REDDIT-ACCOUNT-PASSWORD
client_id=REDDIT-APP-CLIENT-ID
client_secret=REDDIT-APP-CLIENT-SECRET

正如附加说明一样,get_flair_list()也需要主持人访问权限,如文档所述here

另外,你在底部问:

  

如何致电get_flair_list()获取Reddit帖子的所有评论?

这不是你如何获得帖子的所有评论,如果这是你想要做的,你可以在PRAW文档中阅读this tutorial

如果您有任何其他问题,请不要对此答案发表评论,我或其他人可以回答!