使用python脚本重定向在同一页面登录网站

时间:2017-06-13 15:28:07

标签: python html web-scraping python-requests lxml.html

我正在尝试使用具有“'形式”的python脚本登录网站。在源代码中使用这样的标记。

<form action="trylogin.php" method="post">
<input name="authenticity_token" type="hidden" value="dpsTlD8zutj35FVWJTIqtUZGX67qQ/vab33hpPyYuaU=" />
<input id="user_username" maxlength="20" name="username" placeholder="Username" size="20" type="text" />
<input id="user_password" name="password" placeholder="Password" size="20" type="password" />
<input class="submit themed_bg themed-dark-hover-background" name="commit" type="submit" value="Login" />
</form>

我正在尝试以下python代码

import requests
import lxml
import lxml.html

s = requests.session()
login = s.get('url')
login_html = lxml.html.fromstring(login.text)
hidden_inputs = login_html.xpath(r'//form//input[@type="hidden"]')
form = {x.attrib["name"]: x.attrib["value"] for x in hidden_inputs}

form['username'] ='user'
form['password'] ='pass'
form['commit'] = 'Login'

response = s.post('url', data=form)
response.ok
response.url

s.get()工作正常,response.ok也提供了&#39; true&#39;输出,但响应的url与上一页相同。它似乎是重定向同一页面。我无法从python登录。我应该怎么做我应该在s.post()中使用标题争论?怎么知道呢?我用过

form['commit'] = 'Login'

因为登录是以输入而非按钮的形式,是否正确?

<input class="submit themed_bg themed-dark-hover-background" name="commit" type="submit" value="Login" />

0 个答案:

没有答案