gpt4 book ai didi

使用 Mechanize 的 Python 自动登录

转载 作者:行者123 更新时间:2023-12-04 16:20:35 25 4
gpt4 key购买 nike

固定的!更新了工作代码

我一直在努力让这个自动登录的东西对我有用。
请注意,此时我仍然是 Python 新手。

以下是我查看相关表单时发现的html代码:

<form action="/cgi-bin/netlogin.pl" method="post" name="netlogin">
<tr>
<td><div align="right">Intranet userid:</div></td>
<td><input type="text" size="20" maxlength="50" name="uid" id="uid" class="formField" /></td>
</tr>
<tr>
<td><div align="right">Wachtwoord:</div></td>
<td><input type="password" size="20" maxlength="50" name="pwd29296" class="formField" autocomplete="off"/></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="submit" value="Login" /></td>
</tr>
</form>

我首先获取门户 html 内容以找到正确的“pwdXXXX”变量。每次刷新时,密码表单的 ID 都会发生变化。据我了解,正则表达式有效。

尝试传递密码时确实出错了。这让我觉得我弄错了它的键形式?我完全不知道。我还尝试使用 urllib2 方法而不是使用 Mechanize 。也没有结果。

工作代码:
url = "https://netlogin.kuleuven.be/cgi-bin/wayf2.pl?inst=kuleuven&lang=nl&submit=Ga+verder+%2F+Continue"

br = mechanize.Browser()
br.set_handle_robots(False)
br.open(url)
br.select_form(name = "netlogin")
form = str(br.form)

uID = "uid"
dynamic_pwID = re.findall(r"(pwd\d+)", form) #pwID changes when page is refreshed
pwID = dynamic_pwID[0]

br[uID] = "xxxx"
br[pwID]= "xxxx"

res = br.submit()

最佳答案

您的问题的一部分很可能是因为您关闭了使用 urllib 阅读页面的套接字。与您的 Mechanize session 将有一个 不同 ID 等需要一个 新品 token 。

您需要在 session 期间保持单个连接打开。所以我认为你需要解析对br.read() 的回复的内容。为 pwID 找到您的值(value).

来自 OP 的评论:

I left out the urllib part and it's working now. I used str(br.form) instead of br.read() though.

关于使用 Mechanize 的 Python 自动登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686236/

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