2010-07-28 91 views
2

当我使用IE访问usatoday.com时,会在我的Temporary Internet Files文件夹中自动创建cookie文件。但为什么下面的Perl脚本没有捕获任何东西?为什么我的Perl脚本不能打印cookie值?

use WWW::Mechanize; 
use strict; 
use warnings; 

my $browser = WWW::Mechanize->new(); 
my $response = $browser->get('http://www.usatoday.com'); 
my $cookie_jar = $browser->cookie_jar(HTTP::Cookies->new()); 
$cookie_jar->extract_cookies($response); 
my $cookie_content = $cookie_jar->as_string; 
print $cookie_content; 

对于其他一些网站如amazon.com,google.com和yahoo.com,脚本效果很好,但至少在我看来usatoday.com也发送cookie信息到浏览器,为什么我有不同的结果?有什么我失踪?

任何想法?谢谢!

+0

使用严格;使用警告;由于“全局符号”$ cookie_content“需要显式包名”,您将收到编译错误。 将其更正为我的$ cookie_content = $ cookie_jar-> as_string; – 2010-07-28 06:04:08

+0

谢谢。我明白了这一点。 – Mike 2010-07-28 06:22:16

回答

3

UsaToday使用Javascript设置cookie。 WWW :: Mechanize不分析或运行Javascript。

如果您需要使用cookie来抓取网站,您可以分析http://i.usatoday.net/_common/_scripts/gel/lib/core/core.js和其他JS文件,并确定cookie的创建方式,并以编程方式自行创建一个。

+0

感谢您的指针。我会看看如果Win32 :: IE :: Mechanzie的作品。 – Mike 2010-07-28 06:59:06

相关问题