1

Perl スクリプトは初めてです。テキスト ファイルを解析し、解析したテキストをエンコードして、URL に添付したいと考えていました。知っている場合は、適切なリソースを教えてください。これが私の大きな問題です。

ここで、Perl の LWP モジュールを使用して URL を実行し、それをテキスト ファイルに保存しようとしています。次のプログラムを使用して Google に接続しましたが、「401 UNAUTHORIZED」エラーが発生します。助けてください - ユーザー認証の詳細とパスワードをどこに入力すればよいですか?

#!/usr/bin/perl
    use strict;
    use warnings;
    use LWP::UserAgent;
    use HTTP::Request::Common qw(GET);
    use HTTP::Cookies;

    my $ua = LWP::UserAgent->new;

    # Define user agent type
    $ua->agent('Mozilla/8.0');

    # Cookies
    $ua->cookie_jar(
        HTTP::Cookies->new(
            file => 'mycookies.txt',
            autosave => 1
        )
    );

    # Request object
    my $req = GET 'http://www.google.com';

    # Make the request
    my $res = $ua->request($req);

    # Check the response
    if ($res->is_success) {
        print $res->content;
    } else {
        print $res->status_line . "\n";
    }

    exit 0;
4

2 に答える 2

1

あなたの質問へのコメントで述べたように、モジュールWWW::Mechanizeのラッパーです。LWPブラウザの使用方法に似ており、Cookie を自動的に処理します。

あなたの直接の質問に対処するために、それが提供する1つの方法はcredentials次のとおりです。

追って通知があるまで、すべてのサイトとレルムの HTTP 基本認証に使用される資格情報を提供します。

あなた自身のものに似た簡単な例を次に示します。Google がそれらを必要とするとは思わないため、ユーザー資格情報の行はコメント化されています。

#!/usr/bin/perl

use strict;
use warnings;

use WWW::Mechanize;

my $mech = WWW::Mechanize->new();
#$mech->credentials('username','password');

$mech->get('http://www.google.com');

if ($mech->success) {
  $mech->dump_text();
  #$mech->save_content('file.html');
} else {
  print $mech->status();
}

要約するとLWP、Web をブラウジングする力が得られ、WWW::MechanizeDo What You Mean がより便利になります。

于 2011-05-10T00:13:08.687 に答える
-2

LWP::Simpleこれは非常に単純で簡単な操作なので、使用したほうがよいです。使用例:

 use LWP::Simple;
 $content = get("http://www.sn.no/");
 die "Couldn't get it!" unless defined $content;
于 2011-05-09T06:52:37.530 に答える