Quisiera conseguir abrir ficheros .html de los cuales coger cierta parte (en este caso el texto que me interesa es el que en el código fuente del html sale entre <!-- google_ad_section_start --> y <!-- google_ad_section_end --> ) e ir metiendo todas las partes en un único fichero de texto (index.txt por ejemplo).
Bien, entre lo que he encontrado por ahí y lo poco que he hecho yo, de momento he conseguido hacer funcionar dos pequeños códigos, uno que saca en pantalla lo del html:
Using perl Syntax Highlighting
- use strict;
- use HTML::Parser;
- my $file = 'presss.html';
- my $parser = HTML::Parser->new( text_h => [ \&text_handler,"self,dtext"],
- start_document_h => [\&init, "self"] );
- $parser->parse_file($file);
- print @{$parser->{_private}->{text}};
- sub init
- {
- my ( $self ) = @_;
- $self->{_private}->{text} = [];
- }
- sub text_handler
- {
- my ( $self, $text) = @_;
- push @{$self->{_private}->{text}}, $text;
- }
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4
(Creo que muestra todo el texto excepto las etiquetas.)
Y otro que me abre un fichero (general.txt) en el que me añade al final lo del otro archivo (index.txt):
Using perl Syntax Highlighting
- $file = "general.txt";
- open (FILE, ">>$file") or die "Can't open $file: $!\n";
- @lines = <FILE>;
- while(my @lines = <FILE>){
- print "@lines\n";
- }
- close FILE;
- open (STDOUT, ">>$file") or die "Can't open $file: $!\n"; #con el >> se añade el siguiente texto al archivo guardado
- $abrir = "index.txt";
- open(AE,"$abrir") or die;
- while(my $reng=<AE>){
- print "$reng\n";
- }
- close(AE);
- #Walk through lines, putting into $_, and substitute 2nd away
- for ( @lines ) {
- s/(.*?away.*?)away/$1yellow/;
- print "line";
- }
- close STDOUT;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Ahora querría hacer uno que me hiciera lo que comento al principio: que me abriese únicamente parte de un html (para luego ya unirlo a las demás partes y conseguir un programa que me pueda ejecutar:
Abrir parte del contenido de un HTML --> Grabar dicho contenido en un .txt --> Añadir ese .txt a un arhivo general.txt
P.D.:
a) realmente no sé cómo utilizar la sentencia if() o si esta es la mejor opción para ello
b) no sé si tendría que indicarle que acote por las etiquetas (ya que el programilla ese que he pillado de html to txt no las imprime en patalla, o debo acotar de otra forma
c) o si se podría, por ejemplo, indicar que acote desde que en pantalla muestre XYZW hasta que haya dos "\n" seguidos... o ¿cómo hacerlo?
P.P.D:
agradezco cualquier tipo de ayuda, no sé programar y me estoy volviendo loco porque tengo que tratar una serie de textos por un tema lingüístico y me han indicado que el Perl es mi mejor opción para ello, pero ya veis que apenas sé hacer nada con él (más que avanzar un mínimo me está suponiendo gran cantidad de esfuerzo y horas de las que casi no dispongo).
Un saludo y muchas gracias.