如何配置WWW :: Mechanize在代理和https后面工作?

时间:2010-09-14 13:42:11

标签: perl

我使用WWW :: Mechanize编写了Perl代码来检索网页。当我检索http网页时,它工作正常,但它不适用于https。我已经检查过,我有Crypt :: SSLeay包。还有什么可能是错的?

错误消息是..

Error GETing https://www.temp.com: Can't Connect to www.temp.com:443 <Bad hostname 'www.temp.com'> at scrape.pl line 8

3 个答案:

答案 0 :(得分:2)

我在your related Mechanize question中看到您仅使用httpftp方案调用proxy method。请仔细阅读https

设置proxy environment variables可能更有用,因为所有程序都可以利用此中央配置,而不是分别为每个程序配置代理。不要忘记https_proxy。请致电env_proxy method而不是proxy来使用它们。

答案 1 :(得分:1)

显然,我需要在我的文件中添加以下内容

$ENV{'HTTPS_PROXY'} = 'http://proxy:port/';

for Crypt :: SSLeay

答案 2 :(得分:0)

如果有人绊倒了这个老问题:近年来情况发生了变化。

  • 从版本6开始,LWP使用IO :: Socket :: SSL作为后端
  • IO :: Socket :: SSL没有像Crypt :: SSLeay那样提供自己的代理黑客,并且已经记录了LWP https代理支持(例如使用代理方法或env_proxy)。
  • 版本6.06的LWP :: UserAgent和LWP :: Protocol :: https(现在是单独的发行版!)https代理按预期工作并记录
  • 对于旧版本的LWP,可以使用Net :: SSLGlue :: LWP