无法使用Python 3中的请求登录到ESI认证的网站
在过去的两天里,我正在尝试登录我在food.com上的帐户无法使用Python 3中的请求登录到ESI认证的网站,python,http,python-3.x,login,python-requests,Python,Http,Python 3.x,Login,Python Requests,在过去的两天里,我正在尝试登录我在food.com上的帐户 url = "http://share.food.com/registration/login.esi" 以下是我从该网站获得的代码: s = requests.Session() other_url = 'http://www.food.com/recipe-finder/all/shrimp?pn=25' p = dict(user = 'username', passwd = 'password') r = s.get(url,
url = "http://share.food.com/registration/login.esi"
以下是我从该网站获得的代码:
s = requests.Session()
other_url = 'http://www.food.com/recipe-finder/all/shrimp?pn=25'
p = dict(user = 'username', passwd = 'password')
r = s.get(url, params = p)
print(r.url)
这是url的输出
我得到了正确的网址
但是
返回food.com/recipe finder/all/shrimp?layout=desktop&pn=1
这意味着我没有登录。
谢谢你的帮助 我刚刚发现登录的url是 url= 从这个页面,我发现登录表单有隐藏的变量: 用户名 密码类型为password pwdtext,它是字符串类型,但不是 登录显示为带有“登录”字样的按钮 仍然使用urlib.request或requests,我无法登录。我怎么知道?未创建cookie,并且r.history为空 这是HTML的一部分 … … … … … … …
历史记录显示了什么?如果这是一个非空列表,则您的请求被重定向,最终的URL不同。该网站有一点间接性。表单在HTML中没有目标,因此您必须找出哪个Javascript正在设置表单的目标。
r = requests.get(other_url, cookies = c, verify = False)
print(r.url)