Leer fichero desde un punto a un punto(Python)

Iniciado por ¨°o.O (ßa¢Kg|姧) O.o°, 29 Marzo 2010, 18:41 PM

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

¨°o.O (ßa¢Kg|姧) O.o°

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

Novlucker

#1
Quizás esto te sirve como referencia :P

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


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

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

¨°o.O (ßa¢Kg|姧) O.o°

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 (python) [Seleccionar]
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


Novlucker

Para eso simplemente busca el > con find y ya, luego tomas la parte de la cadena que te interesa

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein