Portál AbcLinuxu, 24. dubna 2024 10:20


Dotaz: prevod HTML tabulky na csv soubor

2.11.2011 17:01 Milan Roubal | skóre: 25
prevod HTML tabulky na csv soubor
Přečteno: 570×
Odpovědět | Admin
Zdravim, mam problem s prevodem HTML tabulky na datovy soubor, ktery by byl strojove zpracovatelny. Dosud jsem pro tuto operaci pouzival prikaz
lynx -width=8000 -dump "file:///temp/data.html" > data.txt
Bohuzel nejnovejsi datovy soubor uz ma vice nez 1000 znaku na vyrenderovanem radku a z nejakeho neznameho duvodu (asi vnitrni limit lynxu) se nejdelsi radek renderuje jen do 1000 znaku a pak zacne na novem radku. Bohuzel vysledek nema v tom pripade pravidelnou sloupcovou strukturu a sloupce jsou ruzne posunute o nepredikovatelny pocet mezer. Zdrojovy HTML soubor ma asi 215 MB.

Neznate nekdo nejaky jiny program, ktery zvladne prevest HTML tabulku na textovy soubor (at uz s pevnou sirkou sloupce nebo jako soubor s nejakym preddefinovanym oddelovacem? Diky za jakykoliv rozumny tip.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

2.11.2011 17:33 NN
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebyl by to idealni pripad napsat si vlastni skript ?

NN
2.11.2011 18:00 Kit
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus v PHP DOMDocument::loadHTMLfile();
3.11.2011 10:40 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Diky za tip. Bohuzel jakykoliv nastroj, co udrzuje cely dokument najednou v pameti, neni dobry napad.
cezz avatar 3.11.2011 02:09 cezz | skóre: 24 | blog: dm6
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
http://www.aaronsw.com/2002/html2text/ vyzera pouzitelne.
Computers are not intelligent. They only think they are.
bambas avatar 3.11.2011 08:04 bambas | skóre: 20 | blog: bambasovo
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
No naprevod tabulky dost na prd. Cekal bych, ze prevede tabulku tak, kazdy radek tabulky nacpe do jednoho radku txt souboru a hodnoty oddeli carkou ci strednikem.
3.11.2011 10:08 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Diky za tip, ale pro moje ucely to bohuzel neni pouzitelne. Ve vysledku zustavaji neprelozene znaky jako napriklad & nbsp; a dalsi.
cezz avatar 4.11.2011 09:43 cezz | skóre: 24 | blog: dm6
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Tak mozno iny z kvanta html2txt programov - co som tak narychlo pozeral, nasiel som 3 dalsie.
Computers are not intelligent. They only think they are.
3.11.2011 08:49 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud je to jednoduchý pevný html formát, něco jako
<tr><td>X<td><td>Y<td></tr>
<tr><td>X<td><td>Y<td></tr>
tak to jednoduchých několik regulárních výrazů zvládne.
Nevím jak z velikostí toho souboru (trošku bych se bál), ale obecně OO Calc by to mohl načíst a uložit.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
3.11.2011 09:51 Kit
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Regulární výrazy jsou hezká věc a dlouho jsem je používal i k podobným účelům, ale jakýkoli HTML parser je praktičtější a spolehlivější.
3.11.2011 11:32 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Narazil jsem na tento soubor regularnich vyrazu, ktery pravdepodobne uz resi vetsinu zaludnosti prevodu HTML na text. Zatim to vypada jako nejschudnejsi varianta.
3.11.2011 11:56 Kit
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Tak ten skript vypadá úplně šíleně. Je složitý a přitom některé možnosti zápisu HTML vůbec neřeší. Na určité speciální případy se možná použít dá, ale parsery to řeší mnohem lépe.
3.11.2011 10:01 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Format vypada podle vseho asi takto:
<tr ....>
<th ....>
Z
</th>
</tr>
<tr ....>
<td ....>
X
</td>
<td ....>
Y
</td>
</tr>
Nedokazu odhadnout, zda se nekde uvnitr souboru formatovani nezmeni, zda tam neni napriklad prazdny radek.

Problem je, ze uvnitr tech policek muze byt cokoliv, zatim jsem tam nasel napriklad & nbsp ; a & quot ;.

Proto hledam takovy prevodovy mechanizmus, ktery je vyzkouseny take na UTF8 a UTF16 souborech, nebot pristi datovy soubor bude s cinskyma znakama. Prevod se musi povest na 100%, nemuzu si bohuzel dovolit zjistit za tyden ze jsem nejake specialni znaky v HTML zapomnel prevest.
3.11.2011 11:14 l4m4
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
S tak specifickými požadavky si to asi budeš muset napsat. Pokud je držení 250MB v paměti problém, tak použij v podstatě jakýkoli SAX parser v tvém oblíbeném jazyce, při textNode shdromažďuj hodnoty, pokud je přímý rodič td nebo th a při elementEnd elementu tr je vyplivni jako CSV řádek.
3.11.2011 23:48 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Ja teda neviem ..., ale nešlo by urobiť niečo ako

cat vstup.html | tr -d \\n | sed -e 's,</tr ....><tr ....>,\n,g' -e 's,</td ....><td ....>,\n,g' > vystup.csv

?
3.11.2011 12:16 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: prevod HTML tabulky na csv soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak to vypada ze existuje i moznost opravit lynx. Narazil jsem na tuto diskuzi. Asi nejrychlejsi reseni pokud to bude fungovat.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.