LINUX.ORG.RU

Как можно парсить таблицы из страницы html? (+)


1

0

Привет,

Возникла необходимость запарсить из html в базу данных много таблиц, которые окружены текстом. Возможно ли позцепить данные чем-нибудь, руками копировать слишком муторно.

Спасибо.

anonymous

Перлом можно. Вот фрагмент реально работающего кода, который выдирает данные из таблиц html
и сохраняет в текстовом файле.

#!/usr/bin/perl -w
# Copyright (C) 2003 by josephson ;)

BEGIN{
    use strict;}

die('Command line argument not found')unless$ARGV[0];
my $Index=0;
my @Temporary;
my $SrcFile=$ARGV[0];
my $DstFile='>'.&FrmDstName('.tmp');
# Parse a html file and write the user data to one line.
open(SRC,$SrcFile)||die("Can't open file $SrcFile");
open(DST,$DstFile)||die("Can't open file $DstFile");
while(<SRC>){
    chomp;
    $Temporary[$Index]=$_;
    next unless($Temporary[$Index]=~m/^<td\s+?.*?>.*?<\/td>$/);
    $Temporary[$Index]=~s/^<(td\s+?.*?)>//s;
    $Temporary[$Index]=~s/<\/td>$//s;
    print(DST "$Temporary[$Index]\t");
    $Index++;
    ($Index>6)&&($Index=0,print(DST "\n"));}
close(DST);
close(SRC);

# Generate the destination file name.
sub FrmDstName{
    my $DstFile=$SrcFile;
    $DstFile=~s/(\.\w+)?$/$_[0]/s;
    return $DstFile;}

josephson ★★
()

парсером для XML который можно найти под любой язык программирования. Ставишь обработчики на теги table, tr, td, th - и вперед!

kpblca
()
Ответ на: комментарий от Severus_Zley

QT это же вроде графический тулкит? При чём здесь он вообще?

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

Не, надо использовать lex+yacc :)

anonymous
()
Ответ на: комментарий от anonymous

Короче, я нашёл способ лучше ;)

Делаю так: импортирую html в ОпенОффис Calc и там уже с помощью lookup'ов хватаю ту дату, которая мне нужна. Можно прямо с интернета данные хватать :-)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.