【发布时间】:2010-10-15 23:31:26
【问题描述】:
在 5,000 个 HTML 文件的每一个中,我只需要获取一行文本,即第 999 行。如何告诉 HTML::Parser 我只需要获取第 999 行?
</p><h1>dataset 1:</h1>
<table border="0" bgcolor="#EFEFEF" leftmargin="15" topmargin="5"><tr>
<td><strong>name:</strong> </td> <td width=500> myname one </td></tr><tr>
<td><strong>type:</strong> </td> <td width=500> type_one (04313488) </td></tr><tr>
<td><strong>aresss:</strong> </td><td>Friedrichstr. 70, 73430 Madrid</td></tr><tr>
<td><strong>adresse_two:</strong> </td> <td> no_value </td></tr><tr>
<td><strong>telefone:</strong> </td> <td> 0000736111/680040 </td></tr><tr>
<td><strong>Fax:</strong> </td> <td> 0000736111/680040 </td></tr><tr>
<td><strong>E-Mail:</strong> </td> <td> Keine Angabe </td></tr><tr>
<td><strong>Internet:</strong> </td><td><a href="http://www.mysite.es" target="_blank">www.mysite.es</a><br></td></tr><tr> <td><strong>the office:</strong> </td>
<td><a href="http://www.mysite_two" target="_blank">mysite_two </a><br></td></tr><tr>
<td><strong>:</strong> </td><td> no_value </td></tr><tr>
<td><strong>officer:</strong> </td> <td> no_value </td> </td></tr><tr>
<td><strong>employees:</strong> </td> <td> 259 </td></tr><tr>
<td><strong>offices:</strong> </td> <td> 8 </td></tr><tr>
<td><strong>worker:</strong> </td> <td> no_value </td></tr><tr>
<td><strong>country:</strong> </td> <td> contryname </td></tr><tr>
<td><strong>the_council:</strong> </td> <td>
好吧,问题是,是否可以使用此属性在 5000 个文件中进行搜索:第 999 行是有趣的。换句话说,我可以告诉 HTML 解析器它必须准确地查看(并提取)第 999 行吗?
你好,亲爱的 RedGritty Brick - 我对 HTML 几乎没有经验 :: TokeParser
use HTML::TreeBuilder::XPath;
my $tree = HTML::TreeBuilder::XPath->new;
#use real file name here
open(my $fh, "<", "file.html") or die $!;
$tree->parse_file($fh);
my ($name) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});
print $name->as_text;
顺便说一句; RedGrittyBrick: 查看示例网站之一:http://www.kultusportal-bw.de/servlet/PB/menu/1188427/index.html?COMPLETEHREF=http://www.kultus-bw.de/did_abfrage/detail.php?id=04313488 在灰色阴影块中,您会看到想要的信息:需要的 17 行。注意——我有 5000 个不同的 HTML 文件——它们的结构都一样!
这意味着我很乐意拥有一个可以使用 HTML::TokeParser::Simple 和 DBI 运行的模板。
喜欢得到提示
【问题讨论】:
-
该 HTML 的哪一行是您要提取的那一行,还是全部在一行上?
标签: perl html-parsing