使用requets.post登录不起作用-错误400、404和405

问题描述 投票:0回答:1

我正在尝试登录本地超市的网页来进行我正在从事的网络抓取项目。不幸的是,如果没有登录我就无法访问商店,因此我需要发布一个登录请求,然后加载适当的URL以用BeautifulSoup进行抓取。

这是我编写的代码:

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36'}

landing_URL = 'https://www.esselunga.it/area-utenti/applicationCheck?appName=esselungaEcommerce&daru=https%3A%2F%2Fwww.esselungaacasa.it%3A443%2Fecommerce%2Fnav%2Fauth%2Fsupermercato%2Fhome.html%3F&loginType=light#!/negozio/'

payload = {'gw_username': 'xxx', 'gw_password': 'yyy'}

r = requests.post(landing_URL, payload, headers=headers)
print(r.status_code)

现在,源代码中的登录行如下:

<form id="loginForm" action="/area-utenti/loginExt" method="post" onsubmit="return checkCaptchaAndLogin();" accept-charset="utf-8">
					

我尝试在URL的各个部分中添加/ loginExt来发布登录请求,但没有任何效果,大多数情况下我不支持请求。

我该如何解决?

python
1个回答
0
投票

首先,操作是action =“ / area-utenti / loginExt”,因此将数据提交到mywebsite.com/area-utenti/loginExt。仅添加/ loginExt不会做太多。

第二,您具有'onsubmit =“ return checkCaptchaAndLogin();”'属性,这意味着在您提交表单时,将调用checkCaptchaAndLogin函数,并且可能会覆盖Submit操作。另外,通过函数的名称,我可以猜测您必须解决验证码才能登录。

没有更多信息,很难说。

© www.soinside.com 2019 - 2024. All rights reserved.