我有一个html表:
<table>
<tr><td colspan=2>"some text"</td><td>"last week"</td><td>"current week"</td><td>"Delta"</td></tr>
<tr><td>"some text"</td><td>"some text"</td><td>integer</td><td>integer</td><td>integer</td></tr>
<tr><td>"some text"</td><td>"some text"</td><td>integer</td><td>integer</td><td>integer</td></tr>
<tr><td>"some text"</td><td>"some text"</td><td>integer</td><td>integer</td><td>integer</td></tr>
<tr><td>"some text"</td><td>"some text"</td><td>integer</td><td>integer</td><td>integer</td></tr>
</table>
我想从&#34;当前周&#34;中提取每个整数。列,所以每行的第二个整数(没有第一行 - 标题行)。
答案 0 :(得分:3)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<table> <tr>
<td colspan="2">"some text"</td>
<td>"last week"</td>
<td>"current week"</td>
<td>"Delta"</td>
</tr> <tr>
<td>"some text"</td>
<td>"some text"</td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr> <tr>
<td>"some text"</td>
<td>"some text"</td>
<td>integer</td>
<td>integer</td>
<td>integer</td>
</tr> <tr>
<td>"some text"</td>
<td>"some text"</td>
<td>integer</td>
<td>integer</td>
<td>integer</td>
</tr> <tr>
<td>"some text"</td>
<td>"some text"</td>
<td>integer</td>
<td>integer</td>
<td>integer</td>
</tr> </table>
</body></html>
$ xmllint --html --xpath "//td[text()='\"current week\"']/following::td[4]/text()" file_or_URL
或使用xpath数字位置(1到...):简单地说:
$ xmllint --html --xpath "//tr[2]/td[4]/text()" file_or_URL
1
答案 1 :(得分:2)
Perl救援:有HTML::TableExtract
#!/usr/bin/perl
use warnings;
use strict;
use HTML::TableExtract;
my $te = 'HTML::TableExtract'->new( headers => [ 'current' ] );
$te->parse('<table>...</table>');
my $tab = ($te->tables)[0];
for my $row ($tab->rows) {
print $row->[0], "\n";
}