Portál AbcLinuxu, 10. května 2025 22:21
lynx -width=8000 -dump "file:///temp/data.html" > data.txtBohuzel 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.
DOMDocument::loadHTMLfile();
<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.
<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.
cat vstup.html | tr -d \\n | sed -e 's,</tr ....><tr ....>,\n,g' -e 's,</td ....><td ....>,\n,g' > vystup.csv
?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.