当我使用IE访问usatoday.com时,我的Temporary Internet Files文件夹中会自动创建cookie文件。但是为什么下面的Perl脚本没有捕获任何内容?
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 :(得分:3)
UsaToday使用Javascript来设置cookie。 WWW :: Mechanize不解析或运行Javascript。
如果您需要使用cookie抓取网站,您可以分析http://i.usatoday.net/_common/_scripts/gel/lib/core/core.js
和其他JS文件,并确定如何创建cookie,并以编程方式自行创建。