アクセスウェブサイト – WWW :: Mechanize

私はウェブサイトの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のサイトには、定義するヘッダーが必要です。
Accept-Accept-Encoding、Accept-Language、Accept-Charset、Cookieを含む。

それ以外の場合、サーバーはまったく応答しません。

“get”リクエストの前に次のコードを挿入するだけで簡単に行うことができます:

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

空のフィールドの代わりにいくつかの実際の値を挿入できますが、これも機能します。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です