Python请求错误版本2.4.1

时间:2014-09-29 18:48:34

标签: python python-requests

我遇到了python请求模块的错误。这是我的代码。

#!/usr/bin/env python3
import requests

url = 'http://www.mingeford365.co.uk/forum/ucp.php?mode=login'

logininfo = {'username': '',
             'password': ''}

headers = {'Host': 'www.mingeford365.co.uk',
           'User-Agent' : 'Mozilla/5.0 (x11; Ubuntu; Linux x86; rv:28.0) Gecko/20100101 Firefox/28.0', 
           'Accept': 'text/html, application/xhtml+xhtml,application/xml;q=0.9,*/*;q=0.8',
           'Accept-Language': 'en-gb,en;q=0.5', 
           'Accept-Encoding':  'gzip, deflate',                                   
           'referer': 'http://www.mingeford365.co.uk/forum/viewforum.php?f=4',
           'Cookie' : '',
           'Connection' : 'keep-alive',
           'Content-Type': 'application/x-www-form-urlencoded'}

r = requests.session()
r.post(url,params=logininfo,headers=headers)

print (r.text)

我一直收到错误。

Traceback (most recent call last):
  File "./BasicLogin.py", line 22, in <module>
    print (r.text)
AttributeError: 'Session' object has no attribute 'text'

我之前在这里发现了一个类似的问题。 AttributeError: 'Response' object has no attribute 'text'

但是,解决方案是安装最新版本的请求。我已经安装了最新版本,我重新安装了pip和pip3以及两者的redownloaded请求,然后尝试升级,它告诉我我有最新版本。

但是我仍然收到相同的错误消息。我已经尝试了python 3和python 2.7中的代码,我仍然得到相同的错误,我已经尝试r.status_coder.textr.content仍然得到会话没有属性错误。

我不知道还能做什么。

2 个答案:

答案 0 :(得分:0)

r仍然是会话。您需要使用r.post()的返回值:

session = requests.session()
response = session.post(url, params=logininfo, headers=headers)
print(response.text)

变量故意重命名。请不要成为用丑陋的变量名感染代码的人。 :)

答案 1 :(得分:0)

r是您的会话对象,而非响应。 r.post()方法返回响应,使用代替

response = r.post(url, params=logininfo, headers=headers)
print(response.text)

你可能想避免使用1个字母的变量;使用session作为会话对象,例如:

session = requests.session()
response = session.post(url, params=logininfo, headers=headers)
print(response.text)

现在你正在使用的对象更加清晰。