Я попытался запустить следующий скрипт Perl на HTML ниже. Моя проблема заключается в том, как определить правильную ссылку на хеш с attribs
, которая задает интересующие атрибуты внутри самого моего тега HTML <table>
.
#!/usr/bin/perl
use strict; use warnings;
use HTML::TableExtract;
use YAML;
my $table = HTML::TableExtract->new(keep_html=>0, depth => 1, count => 1, br_translate => 0 );
$table->parse($html);
foreach my $row ($table->rows)
sub cleanup {
for ( @_ ) {
s/\s+//;
s/[\xa0 ]+\z//;
s/\s+/ /g;
}
}
{ print join("\t", @$row), "\n"; }
Я хочу применить этот код к HTML-документу, который вы увидите ниже.
Мой первый подход - сделать это методом columns
. Но я не могу понять, как использовать метод столбцов в следующем HTML-файле: Моя интуиция заставляет меня думать, что это должно быть что-то вроде следующего (но моя интуиция ошибочна):
foreach my $column ($table->columns) {
print join("\t", @$column), "\n";
}
Документация HTML :: TableExtract не проливает много света (для меня в любом случае).
Я могу видеть в коде модуля, что метод столбцов принадлежит HTML::TableExtract::Table
, но я не могу понять, как его использовать. Я ценю любую помощь.
Справочная информация:
Я пытаюсь извлечь таблицу, и у меня есть очень маленький документ с таблицами, который я хочу проанализировать с помощью модуля HTML::TableExtract
. Я пытаюсь найти ключевые слова в HTML - чтобы я мог взять их для attribs
Мне нужно распечатать только необходимые данные.
Я пытался перейти на CPAN, но не смог найти, как искать его по определенным ключевым словам. Один из способов сделать это - HTML::TableExtract
, другой способ - разобрать с HTML::TokeParser
У меня очень мало опыта с HTML::TokeParser
.
Ну, - так или иначе, мне нужно сделать этот анализ: я хочу вывести результат проанализированных таблиц в некоторый .text - или даже лучше сохранить его в базе данных. Проблема здесь заключается в том, что я не могу найти способ поиска в полученной проанализированной таблице и получения необходимых данных.
HTML
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<link rel="stylesheet" href="jspsrc/css/bp_style.css" type="text/css">
<title>Weitere Schulinformationen</title>
</head>
<body class="bodyclass">
<div style="text-align:center;"><center>
<!-- <fieldset><legend> general information </legend>
-->
<br/>
<table border="1" cellspacing="0" bordercolordark="white" bordercolorlight="black" width="80%" class='bp_result_tab_info'>
<!-- <table border="0" cellspacing="0" bordercolordark="white" bordercolorlight="black" width="80%" class='bp_search_info'>
-->
<tr>
<td width="100%" colspan="2" class="ldstabTitel"><strong>data_one </strong></td>
</tr>
<tr>
<td width="27%"><strong>data_two</strong></td>
<td width="73%"> 116439
</td>
</tr>
<tr>
<td width="27%"><strong>official_description</strong></td>
<td width="73%">the name </td>
</tr>
<tr>
<td width="27%"><strong>name of the street</strong></td>
<td width="73%">champs elysee</td>
</tr>
<tr>
<td width="27%"><strong>number and town</strong></td>
<td width="73%"> 75000 paris </td>
</tr>
<tr>
<td width="27%"><strong>telefon</strong></td>
<td width="73%"> 000241 49321
</td>
</tr>
<tr>
<td width="27%"><strong>fax</strong></td>
<td width="73%"> 000241 4093287
</td>
</tr>
<tr>
<td width="27%"><strong>e-mail-adresse</strong></td>
<td width="73%"> <a href=mailto:1111116439@my_domain.org>1222216439@site.org</a>
</td>
</tr>
<tr>
<td width="27%"><strong>internet-site</strong></td>
<td width="73%"> <a href=http://www.thesite.org>http://www.thesite.org</td>
</tr>
<!--
<tr>
<td width="27%"> </td>
<td width="73%" align="right"><a href="schule_aeinfo.php?SNR=<? print $SCHULNR ?>" target="_blank">
[Schuldaten ändern] </a>
</tr>
</td> -->
<tr>
<td width="27%"> </td>
<td width="73%">the department</td>
</tr>
<tr>
<td width="100%" colspan=2><strong> </strong></td>
</tr>
<tr>
<td width="27%"><strong>number of indidviduals</strong></td>
<td width="73%"> 192</td>
<tr>
<td width="100%" colspan=2><strong> </strong></td>
</tr>
<!-- if (!fsp.isEmpty()){
ztext = " ";
int i = 0;
Iterator it = fsp.iterator();
while (it.hasNext()){
String[] zwert = new String[2];
zwert = (String[])it.next();
if (i==0){
if (zwert[1].equals("0")){
ztext = ztext+zwert[0];
}else{
ztext = ztext+zwert[0]+" mit "+zwert[1];
if (zwert[1].equals("1")){
ztext = ztext+" Schüler";
}else{
ztext = ztext+" Schülern";
}
}
i++;
}else{
if (zwert[1].equals("0")){
ztext = ztext+"<br> "+zwert[0];
}else{
ztext = ztext+"<br> "+zwert[0]+" mit "+zwert[1];
if (zwert[1].equals("1")){
ztext = ztext+" Schüler";
}else{
ztext = ztext+" Schülern";
}
}
}
}
-->
</table>
<!-- </fieldset> -->
<br>
</body>
</html>
Спасибо за любую помощь.