如何按顺序在Perl中执行以下操作: a)卷曲页面并将其保存到变量中 b)为我想要的值解析变量的值(即HTML内容)(例如:信息保存在标签之间,如...)
答案 0 :(得分:2)
我的perl kung-fu生锈了,但我相信这是下面的事情。
使用curl获取内容然后提取一些html元素的内容:
use WWW::Curl::Easy;
my $curl = new WWW::Curl::Easy;
$curl->setopt(CURLOPT_URL, 'http://www.example.com/some-url.html');
open (my $fileb, ">", \$response_body);
$curl->setopt(CURLOPT_WRITEDATA, $fileb);
$curl->perform;
my $info = $curl->getinfo(CURLINFO_HTTP_CODE);
$response_body =~ m|<a[^>]+>(.+?)</a>|;
现在,$ 1应该包含A元素的内容。如果没有,则会说$ 1未定义或类似。当然,您应首先检查$ info状态代码是否符合预期。这是Perl代码,这种方式很难看,但它有效。但是,我建议不要经常这样做(特别是不要在更大的脚本中),因为使用Perl确实是shooting yourself in the foot的最快之路:
你在脚下射击自己,但没有人能理解你是怎么做到的。六个月后,你们也不能。
我希望它有所帮助。
P.S。我确信有一些更简单的方法,没有这么多代码,但我不记得它是怎么回事......