Portál AbcLinuxu, 26. dubna 2024 11:04


Dotaz: perl - vypreparovani textu z html

11.12.2007 01:53 motorcb | skóre: 12
perl - vypreparovani textu z html
Přečteno: 601×
Odpovědět | Admin
Zdravim. Chtel bych se zeptat jestli je pomoci perlu mozne vypreparovat pouze text z html stranky... Nemate nekdo takovy script?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.12.2007 05:35 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Odpovědět | | Sbalit | Link | Blokovat | Admin
Po zadání do Googlu mi jako první výsledek vypadl modul HTML::FormatText, zkoušel si ho?
Weblate - překládání přes web | Gammu SMSD - posílání SMS | Blog
11.12.2007 07:51 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
- s/<[^>]+>//gs
- HTML::Parser
- HTML::Tree
11.12.2007 11:19 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Take nevim jak se na to mam Google zeptat :( Protoze to sotva dokazu popsat 2 vetama cesky :) V tom je taky velky problem :(
11.12.2007 11:36 ams
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Kdyz jde o Perl, prvni misto kde je vhodne zacit hledat je CPAN. Kdyz tam zadate napr. "html extract text" tak dostanete jako prvni odkaz modul File::Extract::HTML. Pak uz staci
use File::Extract::HTML;
print File::Extract::HTML::extract("soubor.html");
11.12.2007 12:37 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
#!/usr/bin/perl
use File::Extract::HTML;
print File::Extract::HTML::extract("pokus.html");
Hlasi:
delli:~/perl# ./htmlparser.pl
Can't locate File/Extract/HTML.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at ./htmlparser.pl line 3.
BEGIN failed--compilation aborted at ./htmlparser.pl line 3.
11.12.2007 12:39 myšák | skóre: 26 | blog: EmentuX | Ostrava
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html

No ale když ten modul nemáte (velmi pravděpodobně) nainstalovaný, tak ho asi těžko můžete použít...

Je nesmírně těžké být idiotem, konkurence je obrovská...
11.12.2007 12:44 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Ano, s nejvetsi pravdepodobnosti ho nemam nainstalovany. Jak se prosim nainstaluje? Diky
11.12.2007 12:57 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
To záleží na distribuci..
11.12.2007 12:59 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Mohlo by stačit nakopírovat někam tenhle soubor, pokud na tento modul nemáte balíček. Ale kam ho nakopírovat IMHO záleží na distribuci.
11.12.2007 13:05 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
perl -MCPAN -e 'install File::Extract::HTML'
11.12.2007 13:39 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Distribuce Debian
delli:~# perl -MCPAN -e 'install File::Extract::HTML'
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
  Database was generated on Tue, 11 Dec 2007 00:37:43 GMT
File::Extract::HTML is up to date.
delli:~# mc
delli:~/perl# ./htmlparser.pl
Can't locate object method "mime_type" via package "test.html" (perhaps you forgot to load "test.html"?) at /usr/local/share/perl/5.8.8/File/Extract/HTML.pm line 25.
11.12.2007 13:52 outsider
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Manualova stranka nefunguje? Sice vim, co je spatne, ale kdyz vidim tak malo snahy... se mi skoro nechce ani radit...
11.12.2007 13:56 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Opravdu nevim pod cim by se to nechalo najit :(
11.12.2007 14:09 outsider
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Prekvapive

man File::Extract::HTML

a

man File::Extract

a

man File::Extract::Result
11.12.2007 13:55 outsider
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Asi takhle by to mohlo fungovat (ale nemam vyzkouseno):
use File::Extract::HTML;
my $e = File::Extract::HTML->new();
my $r = $e->extract($filename);
print $r->text;
11.12.2007 14:23 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Funguje to super,ale neslo by to jeste poupravit aby to davalo mezery mezi to co bylo v tagach? ted to dela toto:

kdyz mam nekolik odkazu za sebou v li,tak ty odkazy tocpe hned za sebe a je bych mezi ne potreboval mezery.HOMEAKTUALITYNOVINKY a ja bych mezi ty tagy potreboval dat mezeru HOME AKTUALITY NOVINKY Jinak by to bylo uplne dokonaly :) Nevedel by nekdo jak na to?
12.12.2007 13:01 mlz
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Nesystemové: s/<LI>/  c; /gi Nejsem si jist, umí-li FILE::EXTRACT entity

Systemově HTML::Parser, který dokáže definovat, co s jednotlivými tokeny/tagy
22.12.2007 23:20 motorcb | skóre: 12
Rozbalit Rozbalit vše Re: perl - vypreparovani textu z html
Ukázková html stránka:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Jednoduchá www stránkalt;/title>
</head>

<body>

<p>Ví­tejte na mé jednoduché www stránce</p>

Menu:
<ul>
<li>Home</li>
<li>Aktuality</li>
<li>Ostatnbí</li>
<li>Položka</li>
</ul<

Tabulka:
<table>
<tr>
<td width="25%">řádek1</td>
<td width="25%">sloupec1</td>
<td width="25%">sloupec2</td>
<td width="25%">sloupec3</td>
</tr>
<tr>
<td width="25%">řádek2</td>
<td width="25%">sloupec1</td>
<td width="25%">sloupec2</td>
<td width="25%">sloupec3</td>
</tr>
<tr>
<td width="25%">řádek3</td>
<td width="25%">sloupec1</td>
<td width="25%">sloupec2</td>
<td width="25%">loupec3</td>
</tr>
</table>

</body>
</html>
Na kterou byl poslan tento script:

#!/usr/bin/perl
#use File::Extract::HTML;
#print File::Extract::HTML::extract("test.html");
open(SOUBOR, ">soubor.txt");
use File::Extract::HTML;
my $e = File::Extract::HTML->new();
my $r = $e->extract("test.html");
print SOUBOR $r->text;
close(SOUBOR);


Vyplivne:

Jednoduchá www stránkaVítejte na mé jednoduché www stránce Menu: HomeAktualityOstatnbíPoložka Tabulka: řádek1sloupec1sloupec2sloupec3řádek2sloupec1sloupec2sloupec3řádek3sloupec1sloupec2sloupec3

A ja bych potreboval aby byli mezi jednotlivyma polozkama mezery: Jednoduchá www stránka Vítejte na mé jednoduché www stránce Menu: Home Aktuality Ostatnbí Položka Tabulka: řádek1 sloupec1 sloupec2 sloupec3 řádek2 sloupec1 sloupec2 sloupec3 řádek3 sloupec1 sloupec2 sloupec3
Nevedel by nekdo? Predem kekuji :)

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.