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

问题描述 投票:2回答:1

我想收到每篇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行,在文件“/Library/Python/2.7/site-packages/praw-3.4.0-py2.7.egg/praw/init.py”,第565行,在get_content中page_data = self.request_json(url,params = params)文件“”,第2行,在request_json文件中“/Library/Python/2.7/site-packages/praw-3.4.0-py2.7.egg/praw /decorators.py“,第116行,在raise_api_exceptions中return_value = function(* args,** kwargs)File”/Library/Python/2.7/site-packages/praw-3.4.0-py2.7.egg/praw/init .py“,第620行,在request_json中retry_on_error = retry_on_error)文件”/Library/Python/2.7/site-packages/praw-3.4.0-py2.7.egg/praw/init.py“,第452行,在_request中_raise_response_exceptions(response)文件“/Library/Python/2.7/site-packages/praw-3.4.0-py2.7.egg/praw/internal.py”,第208行,在_raise_response_exceptions中提出Forbidden(_raw = response)praw。 errors.Forbidden:HTTP错误

这是PRAW教程的链接:PRAW tutorial

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

python-2.7 reddit praw
1个回答
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文件:

[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

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

© www.soinside.com 2019 - 2024. All rights reserved.