Ankit.11nov has asked for the wisdom of the Perl Monks concerning the following question:

use strict; use warnings; use WWW::Mechanize; my $mech=WWW::Mechanize->new(); my $URL="http://in.yahoo.com/"; $mech->get($URL); $mech->follow_link(text => 'Movies'); my $file=$mech->content(); open FILE_OUT , ">output.html" or die "$!"; print FILE_OUT $file; close FILE_OUT;

This piece of code works fine when I am accessing Moive Link on the Yahoo web page and store it to a file.
But when I am trying to access yahoo Mail with the same piece of code except replacing the Line 7 with the below piece of code to access mail link.
$mech->follow_link(text => 'Mail');

It is giving me the below error
Error GETing https://login.yahoo.com/config/mail?.intl=in: Can't connect to logi n.yahoo.com:443 (Bad hostname 'login.yahoo.com') at mech.pl line 8
Can someone please help me as to why it behaves differently for Mail login page
Note : Crypt-SSLeay.ppd package is installed

Replies are listed 'Best First'.
Re: Accessing web page
by marto (Cardinal) on Jul 24, 2009 at 10:20 UTC

    This seems to me like it should be a reply to Fetching web page rather than a new post. Does your system use an HTTPS proxy? If so please read the WWW::Mechanize documentation reagarding explicitly setting noproxy => 0 when using Crypt::SSLeay.

    Hope this helps,

    Martin

      use strict; use warnings; use WWW::Mechanize; my $mech=WWW::Mechanize->new(noproxy => 0); my $URL="http://in.yahoo.com/"; $mech->get($URL); $mech->follow_link(text => 'Mail'); my $file=$mech->content(); open FILE_OUT , ">output.html" or die "$!"; print FILE_OUT $file; close FILE_OUT;

      Modified the code but still getting the same error.

        So you are using a HTTPS Proxy? Did you set the HTTPS_PROXY environment varialble as describe in the documentation I linked to previously?

        Martin

Re: Accessing web page
by Anonymous Monk on Jul 24, 2009 at 10:29 UTC
    bad hostname means dns lookup failure, outside perl control. It happens frequent behind proxy/firewall, or with broken "dns client" (WinXP) service
    A reply falls below the community's threshold of quality. You may see it by logging in.
Re: Accessing web page
by leocharre (Priest) on Jul 24, 2009 at 14:36 UTC

    That code works fine.

    I get an output.html file with content..

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/T +R/html4/strict.dtd"> <html> <head> <title>Yahoo! India Movies - Bollywood News | Movies Reviews | + Film Trailers</title> <meta name="description" content="New movie reviews & latest b +ollywood movie news from Yahoo! India Movies. Includes new movie trai +lers, latest bollywood releases, movie showtimes, bollywood movie lis +ting , celebrity photos, cinema showtimes and more on Yahoo! Movies"/ +> <meta name="keywords" content="yahoo movies india, bollywood i +ndia, hindi film reviews, bollywood movie trailers, movie previews, b +ox office results, movie news, India movies, movie posters, movie wal +l papers, movie photos, interviews" /> <link rel="stylesheet" type="text/css" href="http://l.yimg.com +/t/movies/20090709/css/yim_home_min.css"> </head> <body id="yahoo"> <div id="doc" class="yui-t1"> <!-- HEADER STARTS --> <div id="header" class="header"> <div class="top_nav"> <div class="lftlinks"> <a href="http://www.in.yahoo.com">Yahoo !</a>& +nbsp;|&nbsp; <a href="http://in.my.yahoo.com">My Yahoo !</a +>&nbsp;|&nbsp; . . .. . . .

    Htpps rawks!

      I think you were running the code with Movies as the follow Link option. Please comment that out and add this line to the code and then run it.
      $mech->follow_link(text => 'Mail');
      I am still getting the below error any pointers how this can be solved.
      Error GETing https://login.yahoo.com/config/mail?.intl=in: Can't connect to logi n.yahoo.com:443 (Bad hostname 'login.yahoo.com') at mech.pl line 8