2016-12-25 32 views
0

我试图写一个redditbot;我决定从一个简单的开始,以确保我正确地做事情,并且我得到了一个RequestException。PRAW提高RequestException当我尝试运行简单的机器人

我的代码(bot.py):

import praw 

for s in praw.Reddit('bot1').subreddit("learnpython").hot(limit=5): 
    print s.title 

我praw.ini文件:

# 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 

[bot1] 
client_id=HIDDEN 
client_secret=HIDDEN 
password=HIDDEN 
username=HIDDEN 
user_agent=ILovePythonBot0.1 

(其中隐藏代替实际的ID,秘密,密码和用户名)

我的回溯:

Traceback (most recent call last): 
    File "bot.py", line 3, in <module> 
    for s in praw.Reddit('bot1').subreddit("learnpython").hot(limit=5): 
    File "/usr/local/lib/python2.7/dist-packages/praw/models/listing/generator.py", line 79, in next 
    return self.__next__() 
    File "/usr/local/lib/python2.7/dist-packages/praw/models/listing/generator.py", line 52, in __next__ 
    self._next_batch() 
    File "/usr/local/lib/python2.7/dist-packages/praw/models/listing/generator.py", line 62, in _next_batch 
    self._listing = self._reddit.get(self.url, params=self.params) 
    File "/usr/local/lib/python2.7/dist-packages/praw/reddit.py", line 322, in get 
    data = self.request('GET', path, params=params) 
    File "/usr/local/lib/python2.7/dist-packages/praw/reddit.py", line 406, in request 
    params=params) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/sessions.py", line 131, in request 
    params=params, url=url) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/sessions.py", line 70, in _request_with_retries 
    params=params) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/rate_limit.py", line 28, in call 
    response = request_function(*args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/prawcore/requestor.py", line 48, in request 
    raise RequestException(exc, args, kwargs) 
prawcore.exceptions.RequestException: error with request request() got an unexpected keyword argument 'json' 

任何帮助,将不胜感激。 PS,我在Ubuntu 14.04上使用Python 2.7。请向我咨询您可能需要的任何其他信息。

+0

这很奇怪。你有什么版本的prawcore,prawcore和请求:将PACKAGE替换为每个版本的名称以从PACKAGE import __version__获取版本:'python -c'; print(__ version __)''我的直觉是你有一个旧版本的请求不支持这个参数。但是,如果使用pip来安装praw,那应该是不可能的。你是如何安装praw的? – bboe

+0

@bboe我正在使用: praw 4.1.0 prawcore 0.5.0 请求2.2.1 我用pip安装了praw。 – CoffeeTableEspresso

+0

这真的很有趣,因为prawcore依赖于'requests> = 2.9.1',因此pip不会成功安装该版本的PRAW。尝试'pip install -U praw'并查看它是否改变了请求版本。 – bboe

回答

0

我看到它的方式,似乎你对Reddit API的请求有问题。也许尝试更改您的文件配置中的用户代理。根据PRAW basic configuration Options,用户代理应遵循格式<platform>:<app ID>:<version string> (by /u/<reddit username>)。试试看看会发生什么。

+1

我试过了,它没有效果。我得到了同样的错误等。 – CoffeeTableEspresso

+0

@CoffeeTableEspresso请求版本<2.4.2中没有引入JSON参数,请求版本是2.2.1。尝试使用pip'pip install requests'来更新它。如果这不起作用,那么你必须有一个较旧的请求库与较新的请求库冲突。 – Bantu

+0

我尝试过'pip install requests',(以及上面@bboe建议的修复),没有更新我的请求版本。 – CoffeeTableEspresso

相关问题