
[英]WWW::Mechanize error: Error GETing url Protocol scheme 'https' is not supported (LWP::Protocol::https not installed)
[英]Perl WWW::Mechanize — Authentication Error GETing URL
我正在尝试使用Perl的Mechanize库填写Web表单。
每当我在搜索框中输入URL时,都会提示以下消息,并且我可以成功手动登录。
但是,当我运行以下脚本时,出现以下错误:
如何使用$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身份验证的要求。 在CPAN上查看LWP :: Authen :: Ntlm 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.