Python 使用请求登录Twitter
我试图用Python(2.7)中的Python 使用请求登录Twitter,python,twitter,python-requests,Python,Twitter,Python Requests,我试图用Python(2.7)中的请求模块登录Twitter,登录后,我想访问Twitter上的另一个目录 因此: 访问: 定位用户名/密码元素 输入Twitter凭据 访问: 输入Twitter密码 到目前为止,我的代码是: import requests import sys import os #LOGIN data = {"session[username_or_email]":"MY_USERNAME", "session[password]":"MY_PASSWORD"}
请求模块登录Twitter,登录后,我想访问Twitter上的另一个目录
因此:
访问:
定位用户名/密码元素
输入Twitter凭据
访问:
输入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)
回溯(最近一次呼叫最后一次):
文件“twitter.py”,第10行,在
if(r.json()中的“success”):
json格式的文件“/usr/lib/python2.7/dist packages/requests/models.py”,第808行
返回complexjson.load(self.text,**kwargs)
文件“/usr/lib/python2.7/dist-packages/simplejson/_-init__.py”,第516行,装入
返回\u默认\u解码器。解码
文件“/usr/lib/python2.7/dist packages/simplejson/decoder.py”,第373行,在decode中
raise JSONDecodeError(“额外数据”,s,end,len)
simplejson.scanner.JSONDecodeError:额外数据:第1行第5列-第1行第81列(字符4-80)
您正在使用r.json()
虽然响应是HTML,但请尝试使用r.text
另外,如果你想知道你已经成功登录,你最好检查你的个人资料图片或类似的东西
然后,您应该使用requests.Session()
,更多信息:看起来您正在尝试将输出转换为json(不是字符串),格式不是json。也许您想尝试python twitter API包装,而不是使用请求。登录twitter时会涉及更多内容。如何登录?我们应该添加哪些参数?如果您查看,您将找到答案。祝你好运我用r.text替换了r.json(),但我得到了:回溯(上次调用):文件“twitter.py”,第10行,if(“r.text()中的“success”):TypeError:“unicode”对象不能调用r.text
,不能r.text()
好的,但我一直得到“登录失败”。。。如何检查我是否已登录?例如,如果title==“Twitter”?在请求中我该如何做呢?使用浏览器登录twitter,右键单击图片,单击“检查”并获取完整的url。现在,在您的代码中,在请求之后,尝试如下操作:if r.text.find('yourPictureUrl')!=-1:#登录。
为什么不使用twitter API?那就容易多了。