我正在尝试登录网站废弃一些数据。它在使用
时有效scrapy.FormRequest.from_response{...}
并使用xpath指定 formElement 。但是,我不知何故被迫使用 requests 库。
我无法使用
正确处理 formElement# Login Information
payload = {'login': USER_NAME, 'pwd': PASSWORD}
# Login
login_response = request_session.post(LOGIN_URL, data=payload)
LOGIN_URL以
结尾LOGIN_URL = ".../authentication?action=2"
我对这些事情很陌生。我尝试过很多东西。我已阅读(here)我可能需要更好地指定网址。以下是包含完整表单的页面HTML代码片段。
<form name="form" method="post" action="authentication"
onsubmit="return onSubmit()">
<input type="hidden" name="action"
value="1" />
<div>
<div class="floatLeft">
<div class="formElement">
<label class="text" for="inputLogin">Login</label><br />
<span class="inputtext"><input type="text"
name="login"
maxlength="80"
id="inputLogin" class="text" /></span>
</div>
<div class="formElement">
<label class="text" for="inputPassword">Password</label><br />
<span class="inputtext"><input type="password"
name="pwd"
maxlength="35"
id="inputPassword" class="text" /></span>
</div>
<br />
<div class="formElement">
<span class="inputsubmit"><input type="submit" name="submit"
value="Log in"
class="btn" /></span>
</div>
</div>
</div>
这是我的第一篇文章,我希望它足够清楚,我希望有人可以帮助我。谢谢!
答案 0 :(得分:0)
如果有人遇到类似的问题:
请务必解决所有输入问题。当您查看HTML代码时,请务必检查不可见的代码。例如,在上面的HTML片段中:
<input type="hidden" name="action" value="1" />
它的解决方案是包含这个输入&#34;动作&#34;在有效载荷中:
我正在尝试登录网站废弃一些数据。它在使用
时有效scrapy.FormRequest.from_response {...} 并使用xpath指定formElement。但是,我不知何故被迫使用请求库。
我无法使用
正确处理formElement# Login Information
payload = {'login': USER_NAME, 'pwd': PASSWORD, 'action': 1}
此外,正如johnashu所指出的,我必须将网址裁剪为
LOGIN_URL = '.../authentication' # i.e. without the GET request '?action=2'
(要获得确切的网址,您可以在Chrome中使用DevTools。)