サイトにログインし、HTMLページを解析して特定のHTMLタグの間の値を抽出する必要があります。PerlでHTTP :: Cookieを使用してCookie値を渡す
これは、ログインデータを必要としないページで正常に実行できます。私はHTML :: Parserクラスを使用しています。
LWP :: UserAgentはcookie_jarメソッドを提供し、ファイルからクッキーをロードしてクッキーを設定します。しかし、私はスクリプト自体のクッキー値をharcodeしたい。それは可能ですか?私はネット上で実際の例を見つけることができませんでした。ここで
は私のコードです:
いくつかの場所で行方不明の変数の宣言に「を私の」言い訳してください。私は急いでこのコードを書いて、LWP :: UserAgentのCookie Handlingのコンセプトを理解しようとしました。
#!/usr/bin/perl
use strict;
use warnings;
use HTTP::Request::Common;
use LWP::UserAgent;
use HTTP::Response;
use HTTP::Cookies;
package IdentityParse;
use base "HTML::Parser";
my $title_flag=0;
my $title="";
my $cookie_jar= HTTP::Cookies->new;
$cookie_jar->clear;
$cookie_jar->set_cookie(Name=Value); #Example, PHPSESSID=710c7aa60aa5cacdc40028ef79de24b2
sub text{
my($self,$text)[email protected]_;
if($title_flag)
{
$title.=$text;
}
}
sub start{
my($self,$tag,$attr,$attrseq,$origtext)[email protected]_;
if($tag =~ /^title$/i)
{
$title_flag=1;
}
}
sub end{
my($self,$tag,$origtext)[email protected]_;
if($tag =~ /^title$/i)
{
$title_flag=0;
}
}
my $url="http://sitename.com/users/index.php";
my $ua= LWP::UserAgent->new();
$ua->agent('NeonFlash');
$ua->timeout(30);
$ua->cookie_jar($cookie_jar);
my $req= HTTP::Request->new(GET => $url);
my $res= ($ua->request($req))->content;
my $p = new IdentityParse;
$p->parse($res);
$p->eof;
print "The title of the web page is: ".$title."\n";
概要:
私はHTTPレスポンスのHTMLページを解析するためにHTML :: Parserクラスを使用しています。タグ間の値を読み取るために、HTML :: Parserのメソッド、開始、テキスト、および終了をオーバーライドします。
Cookieの値がKeyとValueの形式で渡されています。テキストファイルからクッキーを読み込むことは可能ですが、自分で試したことはありません。しかし、私たちがこのようにすることができるかどうかを知りたい。
ありがとうございました。
このタスクについての例を示してください。 –