<Python> Regexp? Dudas con peticiones web

Iniciado por xassiz_, 12 Abril 2010, 23:00 PM

0 Miembros y 1 Visitante están viendo este tema.

xassiz_

Bueno, vuelvo con dudas en Python! :-\


Veamos, yo hago una petición a una web con urllib algo así:

Código (python) [Seleccionar]

#!/usr/bin/env python

import urllib

peticion = urllib.urlopen("http://www.web.com").read()


Y en el código de esa web quiero buscar unas URL con una estructura así:

Citarhttp://www.web.com/codigo.php?variable=XXXX
Donde "XXXX" son números

Que en HTML aparecerían así:
Código (PHP) [Seleccionar]

<a href="http://www.web.com/codigo.php?variable=XXXX">


Para eso hago algo así:
Código (python) [Seleccionar]

if '<a href="http://www.web.com/codigo.php?variable=' in peticion:
print "Contiene esas URL"
else:
print "No contiene ese tipo de URL"


Bien, esto funciona. Pero ahora es cuando quiero guardar el número de esos link en una variable o en un array para poder operar con ellos (ya que en la web puede haber más de uno).

He intentado hacer algo con regexp y [0-9] pero no consigo hacer nada >.<""


Alguna idea?



YXVuIGVyZXMgbWF0YWRvIHBhcmEgcG9uZXJ0ZSBhIGRlc2NpZnJhciBlc3RvIHhE

leogtz

Pon el código que has intentado

Para coger los numéros, necesitarías alguna regex como esta:

my $string = '<a href="http://www.web.com/codigo.php?variable=1234">';
$string =~ m/.*=(\d+).*\>$/g;


\d : Digito.
+ : Uno o más elementos.
$ : Fín de línea

Si pones solo [0-9], significa solo un digito, un digito de 0 a 9, no una serie de digitos.

Sé que es Perl, solo habría que adaptarlo un poco a código python y ya.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Shell Root

Seria algo como estó?
Código (php) [Seleccionar]
<?PHP /* PoC */
$strCadena = "<a href='http://www.shellroot.com/index.php?id=1'>URL</a>
<a href='http://www.shellroot.com/index.php?id=2'>URL</a>
<a href='http://www.shellroot.com/index.php?id=3'>URL</a>
<a href='http://www.shellroot.com/index.php?id=4'>URL</a>
<a href='http://www.shellroot.com/index.php?id=5'>URL</a>
<a href='http://www.shellroot.com/index.php?id=6'>URL</a>
<a href='http://www.shellroot.com/index.php?id=7'>URL</a>
<a href='http://www.shellroot.com/index.php?id=8'>URL</a>";

$strPalabras = preg_split("/id=/", $strCadena);

for($i=1;$i<=count($strPalabras);$i++){
echo preg_replace('/(\D+)/', '', $strPalabras[$i]).', ';
}  

?>


Resultado:
1, 2, 3, 4, 5, 6, 7, 8, ,
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.