我需要登錄到網站,解析HTML頁面並提取特定HTML標記之間的值。在Perl中使用HTTP :: Cookie傳遞Cookie值
我能夠在不需要登錄數據的頁面上成功完成此操作。我正在使用HTML :: Parser類。
LWP :: UserAgent提供了cookie_jar方法,通過從文件加載cookie來設置cookie。不過,我想在腳本本身中對cookie值進行編碼。那可能嗎?我在網上找不到任何工作示例。
這裏是我的代碼:
請原諒失蹤「我」在一些地方變量聲明。我急着寫這段代碼,試圖理解LWP :: UserAgent中的Cookie處理的概念。
#!/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";
摘要:
我使用的HTML解析器::類解析HTTP響應HTML頁面。爲了讀取標籤之間的值,我重寫了HTML :: Parser的方法,開始,文本和結尾。
Cookie值以Key和Value形式傳遞。我知道,雖然我沒有自己嘗試過,但可以從文本文件加載cookie。但我想知道我們是否也可以這樣做。
謝謝。
請提供關於如何執行此任務的示例。 –