不工作的request.post登录网站 - 指定网址

时间:2018-02-10 18:15:53

标签: python python-requests

我正在尝试登录网站废弃一些数据。它在使用

时有效
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>

这是我的第一篇文章,我希望它足够清楚,我希望有人可以帮助我。谢谢!

1 个答案:

答案 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。)

相关问题