Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: xassiz_ en 12 Abril 2010, 23:00 pm



Título: <Python> Regexp? Dudas con peticiones web
Publicado por: xassiz_ en 12 Abril 2010, 23:00 pm
Bueno, vuelvo con dudas en Python! :-\


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

Código
  1. #!/usr/bin/env python
  2.  
  3. import urllib
  4.  
  5. peticion = urllib.urlopen("http://www.web.com").read()
  6.  

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

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

Que en HTML aparecerían así:
Código
  1. <a href="http://www.web.com/codigo.php?variable=XXXX">
  2.  

Para eso hago algo así:
Código
  1. if '<a href="http://www.web.com/codigo.php?variable=' in peticion:
  2. print "Contiene esas URL"
  3. else:
  4. print "No contiene ese tipo de URL"
  5.  

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?


Título: Re: <Python> Regexp? Dudas con peticiones web
Publicado por: leogtz en 12 Abril 2010, 23:42 pm
Pon el código que has intentado

Para coger los numéros, necesitarías alguna regex como esta:
Código:
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.


Título: Re: <Python> Regexp? Dudas con peticiones web
Publicado por: Shell Root en 13 Abril 2010, 01:16 am
Seria algo como estó?
Código
  1. <?PHP /* PoC */
  2. $strCadena = "<a href='http://www.shellroot.com/index.php?id=1'>URL</a>
  3. <a href='http://www.shellroot.com/index.php?id=2'>URL</a>
  4. <a href='http://www.shellroot.com/index.php?id=3'>URL</a>
  5. <a href='http://www.shellroot.com/index.php?id=4'>URL</a>
  6. <a href='http://www.shellroot.com/index.php?id=5'>URL</a>
  7. <a href='http://www.shellroot.com/index.php?id=6'>URL</a>
  8. <a href='http://www.shellroot.com/index.php?id=7'>URL</a>
  9. <a href='http://www.shellroot.com/index.php?id=8'>URL</a>";
  10.  
  11. $strPalabras = preg_split("/id=/", $strCadena);
  12.  
  13. for($i=1;$i<=count($strPalabras);$i++){
  14. echo preg_replace('/(\D+)/', '', $strPalabras[$i]).', ';
  15. }  
  16.  
  17. ?>

Resultado:
Código:
1, 2, 3, 4, 5, 6, 7, 8, ,