Extraer URLs de la entrada estandard

Por Saiyine  el 2004-12-16 00:00:00 - Secciones:  PERL  - Enlace permanente: 386

Un script que he escrito en un momento para sacar las urls que han ido saliendo en la web. Además, si hay un texto en title lo usa como explicación del enlace.

#!/usr/bin/perl while (<STDIN>) { $linea=$_; while ($linea=~/(<a href="(http[^"]+?)" target="_blank" title="([^"]*?)">(.*?)<\/a>)/i ) { $url=$2; $titulo=$3; $texto=$4; if ( !$titulo ) { $titulo=$texto; } print "<li><a href=\"$url\" target=\"_blank\" title=\"$titulo\">$titulo</a>.\n"; $linea=~s/(<a href="(http[^"]+?)" target="_blank" title="([^"]*?)">(.*?)<\/a>)//i; } }

¿Como se podria hacer que de igual si el target está o no, o que no importe el orden?

Keith Amling (23/09/2005, 13:25)

Correctly handling arbitrary HTML in a regex is a little difficult. The most robust way to handle this (at least with a regex) to first check against /<a ([^>]*)>/ and then check the return from that against /title="([^"]*)"/ and /href="([^"]*)"/ separately to parse title and URL. Extracting links from HTML is a hard problem and the correct (although slow) answer is to use HTML::Parser.

I apologize for English. I can pretend to read Spanish, but not to write it.

Saiyine (24/09/2005, 00:51)

Hi!

Yeah, the truth is that this is just a quick'n'dirty hack I can't remember right now why I wrote. Maybe for a module for this web in its pre .com era? I don't know.

You're absolutely correct, the best way is to reuse the code someone, better programmer than I, wrote and put in the HTML::Parser, but it's simply that I don't like to use external libraries for this kind of things.

I apologize for my English too!


Tu nombre (Nick):

Tu correo (Email):
  Necesario para tu gravatar!

Tu página (URL):

Escribe aqui tu comentario:

       :noworry: :roll: :huh: :push: ¬¬ :OO 8) 8O :( :) :? :D :P :o :x :| ;) ^^ xD



Vista previa activada.

Vista previa (6/6/6, 6:66)


Patrocinadores

Saiyine recommends the easiest way to earn money with your web: get paid just by having some links! Click this button to check it out.

Text Link Ads

. . .

Descargas

  • ApagaPC
    apagapc241.exe  (2111)
  • LimpiaDocus
    LimpiaDocus001.exe  (1827)
  • RCM
    rcm001.zip  (1689)
  • Popmail
    popmail-0.4-psmn.tar.gz  (1736)
  • Manual de Delphi en PDF
    delphi_pdf.zip  (2238)
  • Evangelio del Perl
    Evangelio_del_perl.pdf  (1864)
  • Excel Simpsons
    Excel Simpsons  (1914)
  • . . .

    Recomiendo

  • Drivers Nvidia 
    96.85 (676)
  •  Mozilla Firefox 
    DIR (610)
  •  Mozilla Thunderbird 
    DIR (576)
  • KLite 
    klmcodec375.exe (115)
  •  Emule 
    DIR (532)
  •  Knoppix 
    DIR (453)
  •  Knoppix en español (DVD) 
    DIR (795)
  •  Mldonkey 
    DIR (511)
  •  Nucleo linux 
    DIR (516)
  •  Parche linux 
    DIR (516)

    . . .
  • Proyectos online

  • Saiyine Store
  • Kunowalls!!!
  • Fondos de pantalla
  • Picaday: imagenes sexys o chocantes.
  • Scarlett: fotos de Scarlett Johansson
  • WhatsmyIP: obtener tu IP pública
  • Uma Thurman: galeria de Uma Thurman
  • FunPics: imagenes graciosas
  • . . .

    Blogs

  • Por lo que más querais, no entreis a estos: Tapanez, Yhandros, Onez.

  • Otros en español: Chavalina, Testosterona, Kirai, Wardog y el mundo, Mundo Geek, Microsiervos.

  • Mis lecturas en guiri: Coding Horror, MySQL Performance, Slashdot.

    . . .
  • Utilidades

  •  Coral  (624), cacheando webs
  •  Spam.la  (723), correo de usar y tirar
  •  Mailinator  (712), correo de usar y tirar
  •  Bug me not  (656), absurdos registros di NO
  •  Trashmail  (646), correo de usar y tirar

    . . .
  • Página web ©2001-2008 Saiyine generada en 0.0454s, con 1735514 visitas en total, hoy 652 (de un total de 1640 previstas).

    . . .