gpt4 book ai didi

Perl WWW::Mechanize -- 获取 URL 的身份验证错误

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

我正在尝试使用 Perl 的 Mechanize 库填写 Web 表单。

每当我在搜索框中输入 URL 时,它都会提示以下消息,我可以手动登录成功。

enter image description here

但是,当我运行以下脚本时,出现以下错误:

enter image description here

如何使用我的 $mech 正确填写第一个身份验证框凭据目的?

my $mech = WWW::Mechanize->new( 'keepalive' => 1 );

my $url = "http://URL/I/NEED/TO/ACCESS";
my $username = "username";
my $password = "password";

$mech->credentials($username, $password);
$mech->get($url); <----------------- ERROR (LINE 93)

编辑:

这是运行 wget 的结果在请求的站点上
--2013-08-30 11:16:17--  http://moss.micron.com/MFG/ProbeTest/Lists/Manufacturing%20Requests/AllItems.aspx
Resolving moss.micron.com... 137.201.88.118
Connecting to moss.micron.com|137.201.88.118|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 401 Unauthorized
Server: Microsoft-IIS/7.0
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
MicrosoftSharePointTeamServices: 12.0.0.6341
Date: Fri, 30 Aug 2013 17:16:17 GMT
Connection: keep-alive
Content-Length: 0
Authorization failed.

最佳答案

使用旧版本的 Mechanize,您可以将 WWW::Mechanize 子类化打包并提供您自己的凭据例程:

package MyMech;

use vars qw(@ISA);
@ISA = qw(WWW::Mechanize);

sub get_basic_credentials {
my ($self, $realm, $uri) = @_;
return( "user", "password" );
}

然后在你的程序中使用这个包而不是 WWW::Mechanize:
package main;

my $mech = MyMech->new();
$mech->get( $url );

更新

您已更新问题以表明 NTLM 身份验证的要求。退房 LWP::Authen::Ntlm在 CPAN 上。

关于Perl WWW::Mechanize -- 获取 URL 的身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889817/

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