我有一个脚本,是为了在第一次登录到Twitter。如果我检查它,我会得到一个200响应,但我不会在成功后重定向到登录的Twitter帐户,而是它停留在同一个页面上。
url = 'https://twitter.com/login/error?redirect_after_login=%2F'
r = requests.session()
# Need the headers below as so Twitter doesn't reject the request.
headers = {
'Host': "twitter.com",
'User-Agent': "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0",
'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
'Accept-Language': "en-US,en;q=0.5",
'Accept-Encoding': "gzip, deflate, br",
'Referer': "https://twitter.com/login/error?redirect_after_login=%2F",
'Upgrade-Insecure-Requests': "1",
'Connection': "keep-alive"
}
login_data = {"session[username_or_email]":"Username", "session[password]":"Password"}
response = r.post(url, data=login_data, headers=headers, allow_redirects=True)如何在成功向已登录状态发出POST请求后重定向到我的帐户。我是不是使用了正确的标题或类似的东西?我以前没有做过大量的web东西,所以如果这是很明显的事情,我很抱歉。
注意:(我不能使用Twitter API来做这件事)&引用就是错误页面,因为我就是从那里登录的--当然,除非我这么做是错的。
发布于 2017-04-15 23:33:56
也许GET参数redirect_after_login将使用某种javascript或HTML元refresh重定向,而不是HTTP重定向,因此如果是这种情况,requests python模块将无法正确处理它。
因此,一旦从第一个请求中检索到身份验证令牌,就可以再次向https://twiter.com/发出第二个请求,而不会忘记在HTTP请求字段中指定安全令牌。你可以在这里找到更多关于twitter的REST API的信息:https://dev.twitter.com/overview/api
但是python的乐趣在于拥有所有的库,所以我建议您看看这里:
https://github.com/bear/python-twitter
它是一个与twitter的REST API通信的库。
https://stackoverflow.com/questions/43427771
复制相似问题