Perl WWW::Mechanize从页面获取内容

Perl WWW::Mechanize从页面获取内容,perl,ubuntu,vbulletin,Perl,Ubuntu,Vbulletin,我曾经登录过这个网站 现在我们已经登录,我想让WWW::Mechanize脚本转到payments.php,然后找到活动用户订阅,例如VIP访问类: 从这里,我想阅读这是什么,然后选择正确的行动。例如,如果用户包状态为VIP小,则打印PKG:VIP小;如果用户包状态为VIP满,则打印PKG:VIP满 有人知道这样做的方法吗?我的Ubuntu虚拟机中目前使用的代码: #!/usr/bin/perl use WWW::Mechanize; my $forum = "http://localhos

我曾经登录过这个网站

现在我们已经登录,我想让WWW::Mechanize脚本转到payments.php,然后找到活动用户订阅,例如VIP访问类:

从这里,我想阅读这是什么,然后选择正确的行动。例如,如果用户包状态为VIP小,则打印PKG:VIP小;如果用户包状态为VIP满,则打印PKG:VIP满

有人知道这样做的方法吗?我的Ubuntu虚拟机中目前使用的代码:

#!/usr/bin/perl

use WWW::Mechanize;

my $forum = "http://localhost/forums/forum.php";

print "Username\r\n";
my $username = <>;
chomp($username);

print "Password\r\n";
my $password = <>;

# do login
my $mech = WWW::Mechanize->new(agentcheck => 1, agent => 'Perl WWW::Mechanize');
$mech->get($forum);
$mech->submit_form(form_number => 1, fields => { vb_login_username => $username, vb_login_password = $password });

print "this far";
$mech->follow_link(text => "Click here if your browser does not automatically redirect you.");
我想你需要

$mech->get('http://localhost/forums/payments.php');

但是我无法帮助您在没有看到页面HTML的情况下从那里获取信息。

您需要解析结果HTML文件。我建议使用HTML::TreeBuilder::XPath执行以下任务:

my $tree = HTML::TreeBuilder::XPath->new_from_content( $mech->content() );

my ($description) = $tree->findvalues('//p[ @class = "description" ]');

最好是复制/粘贴代码,而不是显示快照…我不明白这是什么,所以我想从中了解这是什么,然后选择正确的操作方法。我们需要更多的细节。go to payments.php的确切含义是什么?payments.php在哪里?Mech所做的一切只是模拟浏览器的动作,所以用点击或提交来描述它。Andy:我需要脚本来浏览payments.php页面,它在同一个目录中。