gpt4 book ai didi

web - 如何使用 WWW::Mechanize 通过 POST 登录并接受 cookie 并浏览网站?

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

我已经阅读了有关 WWW::Mechanize 的各种帮助和文档页面,这似乎是我想要做的事情的答案,但是我一直无法找到任何好的示例,并且无法成功破解我自己的脚本。

我已经成功安装了 WWW::Mechanize 并试图让它做我需要的......

基本上,我试图将登录过程自动化到网站,然后转到特定页面。

正常的人类过程对我来说是:
1. 进入“身份服务器”,这是一个提供简单登录表单的 https 网站(带有一些隐藏值,但有用户名和密码以及提交按钮 [和“保存我的登录”选项])。
2. 登录成功后,“身份服务器”会自动将我重定向到受密码保护的网站,作为经过验证的用户。

我已经能够使用 WWW::Mechanize 查看登录页面的源代码,但我不明白如何将登录信息 POST 回服务器以进行登录和重定向。

我测试过的基本脚本如下。任何人都可以帮助我或指导我找到一个资源,在那里它可能有一个例子来让我帮助自己?

此外,我认为这并不重要,但所涉及的网站几乎基于 Microsoft 服务器和 DNN。

提前致谢。

use strict;
use WWW::Mechanize;

my $mech = WWW::Mechanize->new();
my $start = qq|https://login.foo.org/default.aspx|;
$mech->get($start);

my $username_field = 'ctl00$MainContent$tbUser';
my $password_field = 'ctl00$MainContent$tbPassword';

my $username = "123456";
my $password = "mypasssword";

$mech->field($username_field,$username);
$mech->field($password_field,$password);
$mech->submit(); # to get login cookie
my $results = $mech->submit();

if ($results->is_success) {
print $results->content;
} else {
print $results->message;
}

最佳答案

您的脚本的问题是在您提交表单后,您尝试登录的网站会放置一个 session cookie,以便它可以验证您是经过验证的用户,并且您无需在重定向到您的网站后重新进行身份验证私有(private)登录页面。

您在登录后编写的上述脚本会将您重定向到安全的私有(private)页面,但发现 session cookie 不再存在。因此,您实际上并没有享受登录用户的好处。基本上你需要启用cookie保存。

这是您需要的 Python 代码 [使用您正在使用的相同 Mechanize 库] 应该可以工作。:

    import cookielib
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj) # Now cookie jar can store the loggedIn session cookie so you can access the private pages of a logged in user.
#Extra code may not be required for you
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False) #Some websites won't allow scripts by placing a robots.txt file in their root directory so you need to set robots to false. e.g. Google
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] #Some website allows only browsers to view them. So this is a trick(hack) which will be required for accessing such websites.

现在,当您提交表单时,您应该能够重定向到安全的登录页面而不会被注销。希望这能解决您的问题。

关于web - 如何使用 WWW::Mechanize 通过 POST 登录并接受 cookie 并浏览网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21256511/

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