Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ¨°o.O (ßa¢Kg|姧) O.o° en 29 Marzo 2010, 18:41 pm



Título: Leer fichero desde un punto a un punto(Python)
Publicado por: ¨°o.O (ßa¢Kg|姧) O.o° en 29 Marzo 2010, 18:41 pm
Hola de nuevo. :)

Estoy esta semana muy liado intentando utilizar el mechanize que es un modulo de python webbrowser para mirar unos links de una web y he llegado a un punto que no logro descifrar que es:

Sí tengo un archivo de texto donde ahí guardo todos los datos de la página fuente osea el código fuente de la web y quiero que lea solo el texto que hay entre 2 palabras que están en el mismo texto y que coja el link que hay en ellas.

Gráficamente seria así:

----------------Fichero de texto-----------------------
Muchas línias de código fuente de la web

Hola me llamo x

http://link

Hasta luego

Me despidasdas

----------------Fichero de texto-----------------------

Cómo puedo cojer el link de http://link sí hay más de uno y estan fuera del rango Hola me llamo x , y Me despidasdas?



Saludos, :-\

Backglass


Título: Re: Leer fichero desde un punto a un punto(Python)
Publicado por: Novlucker en 29 Marzo 2010, 19:34 pm
Quizás esto te sirve como referencia :P

Código
  1. import re
  2. r = re.compile('http://\S+', re.IGNORECASE)
  3. texto = "Muchas lineas de codigo fuente de la web Hola me llamo x http://link http://segundolink Hasta luego Me despidasdas"
  4. punto1 = texto.find('Hola me llamo')
  5. punto2 = texto.find('Hasta luego',punto1)
  6. fragmento = texto[punto1:punto2]
  7. links = r.findall(fragmento)
  8. for l in links:
  9. print(l)

Lo he probado en codepad porque es lo que tengo a mano ;D
:http://codepad.org/G6LMOId4

Saludos


Título: Re: Leer fichero desde un punto a un punto(Python)
Publicado por: ¨°o.O (ßa¢Kg|姧) O.o° en 29 Marzo 2010, 20:49 pm
Hola,

Perfeco gracias ;-) funciona perfecto pero ahora quiero filtrar la url osea que solo aparezca  la url, en mi html aparecen 2 que estan en la misma línia ya que aparecen así:

http://var.com/scripts/runner.php?EA=2777">http://var.com/scripts/runner.php

y lo que necesito es que se quede una sola url como así:

Parte verde la que necesito y parte roja la que no necesito:
http://var.com/scripts/runner.php?EA=2777">http://var.com/scripts/runner.php

Estoy usando la expresión regular para conseguirlo
Código
  1. r = re.compile('\http.*var.com*\/*scripts\/*runner\/*.php*', re.IGNORECASE)

Ahora la pregunta como puedo filtrar la expresión regular para que coja todo hasta "> y "> no lo descarte y se quede el único link  http://var.com/scripts/runner.php?EA=2777 ?

PD: No soy muy experto en esto de las expresiones regulares y puede que haya alguna barbaridad en la expresión regular xD

Saludos,
Backglass :D



Título: Re: Leer fichero desde un punto a un punto(Python)
Publicado por: Novlucker en 29 Marzo 2010, 21:05 pm
Para eso simplemente busca el > con find y ya, luego tomas la parte de la cadena que te interesa

Saludos