-2

特定の Web ページのコンテンツを取得できるプログラムがありますが、エラーが発生するページがいくつかあります。

Can't get http://www.sitename.com
302 Moved Temporarily at geturl.pl line 30.

サイトはブラウザ上で正常に表示されます。

コンテンツを取得するために何ができるのだろうか?

私のコードは非常に単純で、LWP を標準的に使用しており、ほとんどのページで正常に動作します。

  my $browser = LWP::UserAgent->new(
    agent=>'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)',
    keep_alive=>'1'
  );
  ...
  my $response = $browser->get($url);

ありがとう!

================

アップデート:

  1. はい、これは私が使用している実際のコードです。次のリダイレクトをオンにする明示的なオプションはありますか?
  2. はいwgetは動作します

ありがとう

4

2 に答える 2

0

LWP::UserAgentドキュメントは、ユーザー エージェントのメソッドrequestが自動的にリダイレクトに従うことを示しています。get同じロジックを使用しているかどうかは、このドキュメントからは不明です。

HTTP::Requestオブジェクトを作成して request メソッドを使用できます。この例では、次のrequest方法を使用します。

perl -MData::Dumper -MHTTP::Request -MLWP -e '
  $request=HTTP::Request->new(GET => "http://www.google.com");
  $ua=LWP::UserAgent->new;
  print Dumper $ua->request($request);'
于 2011-10-21T07:53:51.310 に答える