html - 访问网站 - WWW::Mechanize

标签 html perl

我尝试使用下面的代码来获取网站 htm 源并且它有效。但是访问网站http://reserve.apple.com/WebObjects/ProductReservation.woa/wa/reserveProduct却无法得到结果。通过使用如下代码。但是,我可以通过正确使用浏览器访问此页面。你能给我一些提示或技巧来解决这个问题吗?谢谢。

#!/usr/bin/perl

use strict;
use warnings;

# create a new browser
use WWW::Mechanize;
my $browser = WWW::Mechanize->new();

# tell it to get the main page

my $sURL = 'http://www.apple.com';

#my $sURL = 'http://reserve.apple.com/WebObjects/ProductReservation.woa/wa/reserveProduct';

$browser->get($sURL);

print $browser->content;

exit(0);

最佳答案

这是一种奇怪的行为,但是您要检索的 url 站点需要定义以下 header : 接受、接受编码、接受语言、接受字符集、Cookie。

否则服务器根本不响应。

您只需在“获取”请求之前插入以下代码即可轻松做到这一点:

$browser->add_header(
    "Accept"          => "",
    "Accept-Encoding" => "",
    "Accept-Language" => "",
    "Accept-Charset"  => "",
    "Cookie"          => ""
);

您可以插入一些实际值而不是空字段,但这也有效。

关于html - 访问网站 - WWW::Mechanize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8110999/

相关文章:

arrays - 我不明白这个 Perl 语法,有人知道吗?

javascript - 嵌入表单在 IE 中不显示值

asp.net - 如何将 THEAD 添加到 ASP (2.0) HTMLTable 中?

html - 是否可以用 css 渐变做一条曲线?

regex - 正则表达式匹配重复字符?

perl - Perl 中的继承

javascript - HTML 表格,固定列加载并可水平滚动到左/右滚动箭头单击的下一列

php - 关于 :blank in src

c++ - 在 C++ 和 Perl 之间使用的 YAML

perl - 在 Perl 中存储 1key - 3 value 的最佳方法是什么?