【发布时间】:2018-03-07 13:58:35
【问题描述】:
我有一个 html 文件,其中包含我必须推送到 MySql 数据库的数据。我尝试解析 html 文件以获取我需要的标量值,我做对了,但是当我到达需要收集数据而不是从单行文本而是从特定模式之间的多行中收集数据的地步时,我遇到了问题。 到目前为止,这是我得到的有点工作的东西:
#!/usr/bin/perl
binmode STDOUT,':encoding(cp1250)';
open FILE, "index.html" or die "Could not open $file: $!";
my $word;
my $description;
my $origin;
while (my $line = <FILE>)
{
if ($line =~ m/(?<=<h2 class=\"featured\">)(.*)(?=<\/h2>)/)
{
$word = $line =~ m/<=<h2 class=\"featured\">(.*)<\/h2>/;
$word = $1;
}
if ($line =~ m/(?<=<h4 class=\"related-posts\">)/)
{
print $line;
$origin = $line =~ m/<h4 class=\"related-posts\"> <a href=\"..\/tag\/lacina\/index.html\" rel=\"tag\">(.*)<\/a><\/h4>/;
$origin = $1;
}
}
print "$word \n";
print "$origin";
现在我想抓取几行文本 - 不必是单个标量,但我不知道会有多少行。我所知道的是,这些线条介于以下之间:
<div class="post-content">
<p>text I want</p>
<p>1.text I want</p>
<p>2.text I want</p>
<div class="box small arial">
另外我想摆脱
<p>'s
我想读取一行,将其存储在一个标量中,读取另一行并与最近保存的标量进行比较。但是我应该如何检查我是否在该标量中拥有我想要的一切?
【问题讨论】: