如何在Python中使用POST登录网站?

时间:2014-10-15 14:30:26

标签: python html django url

我想使用其他网站在我的网站上自动填写表格。我希望在处理完下面的form之后获取内容。 我阅读了与之相关的一些主题(123),但我有点困惑哪些字段是必须发送的以及如何发送它们。这是我虚构的网址形式:http://fix-tt.mary.com/tmtrack/tmtrack.dll

<form name="Login" id="Login" method="POST">
  <input name="TMBNX" type="hidden" value="ISO-8859-1">
  <input name="postpreservationdata" type="hidden" value="">
  <input name="target" type="hidden" value="HTTP%3A%2F%2Ffix-tt.mary.com%2Ftmtrack%2Ftmtrack.dll%3FPage%26Id%3D4245024%26template%3Dviewwrapper%26TableId%3D1003">
  <input name="smauthreason" type="hidden" value="0">
  <input name="smtryno" type="hidden" value=""> 
  <input name="smretries" type="hidden" value="1">
  <input name="bacmonitoring" type="hidden" value="LOG ON">

  <h3>Use your email address</h3>

  <label>Email address:</label>
  <input name="USER" type="text">
  <div class="email-login-help clearfix">
    <span class="help">Format: user@test.com</span>
  </div>
  <br>

    <label>Computer password:</label>
    <input name="PASSWORD" class="computer-pass text" onpaste="return false" type="password" autocomplete="off">

    <div class="submit-row"><input class="btn btn-primary" onclick="javascript:trimAndSubmit();" type="submit" value="Log on"> </div>

    <br>
</form>

知道该怎么做吗?

1 个答案:

答案 0 :(得分:1)

如果您想在Python中执行此操作,则可以使用Requests库:

http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests

import requests
payload = {'USER': 'user@email.com',
           'PASSWORD': 'password123',
           'TMBNX': 'ISO-8859-1',
           'smauthreason': 0,
           'smretries': 1,
           'bacmonitoring': 'LOG ON',
           'target': 'http://fix-tt.mary.com/tmtrack/tmtrack.dll',

           }
r = requests.post("http://path-to-login-page.com", data=payload)
print(r.text)

上面的代码只是猜测可能需要哪些字段,可能只需要用户名和密码。猜测是基于哪些字段指定了默认参数。这应该是一个好的开始。

相关问题