Perl WWW :: Mechanize通过代理进行HTTPS

时间:2018-07-06 06:00:43

标签: perl ssl web-scraping proxy www-mechanize

我正在尝试使用WWW::Mechanize模块抓取网站。我已经为机械化代理配置了代理URL,并使用credentials方法设置了代理凭据。

代码段:

my $url = 'https://abcde.com';
my $proxy_username = 'abc';
my $proxy_password = 'xyz';
my $proxy_url = 'http://xx.xxx.xxx.xxx:13228';

my $mechanize_agent = new WWW::Mechanize('cookie_jar' => {}, 'noproxy' => 1, 'ssl_opts' => { 'verify_hostname' => 0 });
$mechanize_agent->credentials( $proxy_username, $proxy_password );
$mechanize_agent->proxy(['http', 'https'], $proxy_url);
$mechanize_agent->get($url) or die 'Error in get request of $url: $@';

当URL是纯HTTP时,脚本将获取并返回结果。但是当我尝试访问HTTPS url时出现错误

  

建立SSL隧道失败:要求407代理身份验证

我的凭据有效,并且可以在Mozilla浏览器中使用代理URL查看网站。我也不必避免使用对env_proxy()函数的调用,因为代理URL是动态的。如何让我的脚本获取HTTPS请求?

欢迎所有建议! 提前致谢。

0 个答案:

没有答案