gpt4 book ai didi

python - 使用python使用cgi脚本登录网页

转载 作者:行者123 更新时间:2023-11-28 21:59:26 24 4
gpt4 key购买 nike

登录网络服务器不是我的专业领域,我希望自动执行登录网络服务器的任务,但我不确定我需要如何格式化我的代码才能实现这个目标。我查看了其他页面,但无论我做什么,我都得到了相同的回复。

网页片段:

  <form name="form1" action="login.cgi" method="POST" onsubmit="encrypt();">
<input type="hidden" name="Token" value="16">
<tr height="15">
<td><img src="/images/spacer.gif" alt="" height="15"></td>
</tr>
<tr height="32">
<td valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="19"><img src="/images/spacer.gif" alt="" width="19"></td>
<td width="100%"> </td>
</tr>
</table>
</td>
</tr>
<tr height="12">
<td><img src="/images/spacer.gif" alt="" height="12"></td>
</tr>
<tr>
<td height="1" valign="top">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"><img src="/images/spacer.gif" alt="" width="20"></td>
<td valign="top">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="/images/spacer.gif" alt="" width="10" height="8"></td>
<td><img src="/images/spacer.gif" alt="" width="400" height="8"></td>
</tr>
<tr>
<td nowrap>
<b>Login:</b>
</td>
<td>
<input name="userid_w" type="text" size="50">
<input name="userid" type="hidden" value=""><img src="/images/spacer.gif" alt="" width="10"></td>
</tr>
<tr>
<td colspan="2" height="3"><img src="/images/spacer.gif" alt="" height="3"></td>
</tr>
<tr>
<td nowrap>
<b>Login Password:</b>
</td>
<td>
<input name="password_w" type="password" size="50">
<input name="password" type="hidden" value="">
</td>
</tr>
<tr height="3">
<td colspan="2"><img src="/images/spacer.gif" alt="" height="3"></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Login">

....

<input type="hidden" name="open" value="">
</form>
</table>

无论我提供什么 userid_w 或 password_w 值,我从服务器得到的响应都会返回:

<html>  <head></head>  <body onload='document.form1.submit()'>    <form name='form1' method='POST' action='message.cgi' target='_top'>      <input type='hidden' name='title' value='MSG_TTL_COOKIEOFF'/>      <input type='hidden' name='messageID' value='MSG_COOKIEOFF'/>      <input type='hidden' name='buttonURL' value='Frame.cgi'/>      <input type='hidden' name='screen' value='all'/>   </form>  </body></html>

如有任何帮助,我们将不胜感激。

编辑:在页面上运行 curl -l 给出:

<html>  <head></head>  <body onload='document.form1.submit()'>    <form name='form1' method='POST' action='/web/guest/en/websys/webArch/message.cgi' target='_top'>      <input type='hidden' name='title' value='MSG_TTL_COOKIEOFF'/>      <input type='hidden' name='messageID' value='MSG_COOKIEOFF'/>      <input type='hidden' name='buttonURL' value='Frame.cgi'/>      <input type='hidden' name='screen' value='all'/>  </form>  </body></html

这看起来像我的 pythons 脚本输出的...

最佳答案

看着 <form name="form1" action="login.cgi" method="POST" onsubmit="encrypt();">可以假设数据在发送到 login.cgi 之前被 javascript 片段修改。如果是这种情况,您有两种选择:

  • 使用selenium传递凭据并继续登录,然后获取 session cookie 并将其复制到您选择的 http 客户端(例如 requests)
  • 使用提供的凭据运行 javascript 解释器(例如 python-spidermonkey)以获取发送的真实 POST 值,并使用它们与您选择的 http 客户端进行调用

关于python - 使用python使用cgi脚本登录网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16602115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com