我正在尝试使用 Python (2.7) 中的 requests
模块登录 Twitter,登录后我想访问 Twitter 上的另一个目录。
所以:
- 访问:https://twitter.com/login
- 找到用户名/密码元素
- 输入 Twitter 凭据
- 访问:https://twitter.com/settings/your_twitter_data
- 输入 Twitter 密码
到目前为止我的代码:
import requests
import sys
import os
#LOGIN
data = {"session[username_or_email]":"MY_USERNAME",
"session[password]":"MY_PASSWORD"}
r = requests.post("https://twitter.com/login/", data=data)
if ("success" in r.json()):
print "Logged in successfully!"
else:
print "Failed to login!"
sys.exit(0)
#CHANGE URL AND INPUT PASSWORD
data = {"auth_password":"MY_PASSWORD"}
r = requests.post("https://twitter.com/settings/your_twitter_data", data=data)
if ("success" in r.json()):
print "Success!"
sys.exit(0)
运行时,这是我收到的错误:
Traceback (most recent call last):
File "twitter.py", line 10, in <module>
if ("success" in r.json()):
File "/usr/lib/python2.7/dist-packages/requests/models.py", line 808, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 516, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 373, in decode
raise JSONDecodeError("Extra data", s, end, len(s))
simplejson.scanner.JSONDecodeError: Extra data: line 1 column 5 - line 1 column 81 (char 4 - 80)
最佳答案
尽管响应是 HTML,但您正在使用 r.json()
,请尝试使用 r.text
。
此外,如果您想知道自己是否已成功登录,您最好检查您的个人资料图片或类似内容。
然后,您应该使用 requests.Session()
,更多信息如下:http://docs.python-requests.org/en/master/user/advanced/
关于python - 使用请求登录 Twitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39150015/