comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Ayuda Expresiones regulares en python

  • 9 Respuestas
  • 3139 Vistas

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

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Noviembre 15, 2013, 06:14:36 pm »

Buenas amigos, tengo una duda sobre expresiones regulares en python esta es mi duda:
Tengo un string que quiero sacar todos los h2 de hay. que metodo tendria que usar findall, search o usar grupos? un ejemplo de como quiero que quede.
Citar
Código: Python
  1. [<h2 class="tt_18 d_inline">
  2. <a class="no_underline" title="" href="/peliculas/pelicula-1628/">
  3. El Padrino
  4. </a>
  5. </h2>, <h2 class="tt_18 d_inline">
  6. <a class="no_underline" title="" href="/peliculas/pelicula-211083/">
  7. One Direction: This Is Us
  8. </a>
  9. </h2>, <h2 class="tt_18 d_inline">
  10. <a class="no_underline" title="" href="/peliculas/pelicula-182745/">
  11. Intocable
  12. </a>
  13. </h2>, <h2 class="tt_18 d_inline">
  14. <a class="no_underline" title="" href="/peliculas/pelicula-132874/">
  15. El caballero oscuro. La leyenda renace
  16. </a>
  17. </h2>, <h2 class="tt_18 d_inline">
  18. <a class="no_underline" title="" href="/peliculas/pelicula-24944/">
  19. Gladiator (El gladiador)
  20. </a>
  21. </h2>, <h2 class="tt_18 d_inline">
  22. <a class="no_underline" title="" href="/peliculas/pelicula-115362/">
  23. El caballero oscuro
  24. </a>
  25. </h2>, <h2 class="tt_18 d_inline">
  26. <a class="no_underline" title="" href="/peliculas/pelicula-27070/">
  27. El Señor de los Anillos: La Comunidad del Anillo
  28. </a>
  29. </h2>, <h2 class="tt_18 d_inline">
  30. <a class="no_underline" title="" href="/peliculas/pelicula-10568/">
  31. Forrest Gump
  32. </a>
  33. </h2>, <h2 class="tt_18 d_inline">
  34. <a class="no_underline" title="" href="/peliculas/pelicula-9393/">
  35. La lista de Schindler
  36. </a>
  37. </h2>, <h2 class="tt_18 d_inline">
  38. <a class="no_underline" title="" href="/peliculas/pelicula-126123/">
  39. Toy Story 3
  40. </a>
  41. </h2>, <h2 class="tt_18 d_inline">
  42. <a class="no_underline" title="" href="/peliculas/pelicula-10126/">
  43. Pulp Fiction
  44. </a>
  45. </h2>, <h2 class="tt_18 d_inline">
  46. <a class="no_underline" title="" href="/peliculas/pelicula-22092/">
  47. El sexto sentido
  48. </a>
  49. </h2>, <h2 class="tt_18 d_inline">
  50. <a class="no_underline" title="" href="/peliculas/pelicula-6641/">
  51. El silencio de los corderos
  52. </a>
  53. </h2>, <h2 class="tt_18 d_inline">
  54. <a class="no_underline" title="" href="/peliculas/pelicula-39186/">
  55. El Señor de los Anillos: Las dos torres
  56. </a>
  57. </h2>, <h2 class="tt_18 d_inline">
  58. <a class="no_underline" title="" href="/peliculas/pelicula-190918/">
  59. Django desencadenado
  60. </a>
  61. </h2>, <h2 class="tt_18 d_inline">
  62. <a class="no_underline" title="" href="/peliculas/pelicula-130440/">
  63. Marvel Los Vengadores
  64. </a>
  65. </h2>, <h2 class="tt_18 d_inline">
  66. <a class="no_underline" title="" href="/peliculas/pelicula-13892/">
  67. Seven
  68. </a>
  69. </h2>, <h2 class="tt_18 d_inline">
  70. <a class="no_underline" title="" href="/peliculas/pelicula-11736/">
  71. Cadena perpetua
  72. </a>
  73. </h2>, <h2 class="tt_18 d_inline">
  74. <a class="no_underline" title="" href="/peliculas/pelicula-39187/">
  75. El Señor de los Anillos: El retorno del Rey
  76. </a>
  77. </h2>, <h2 class="tt_18 d_inline">
  78. <a class="no_underline" title="" href="/peliculas/pelicula-25801/">
  79. Star wars: Episodio IV - Una nueva esperanza (La guerra de las galaxias)
  80. </a>
  81. </h2>]
  82. [/quote]
  83. [size=12pt]Muchas Gracias! de antemano.[/size]
  84.  
[/size][/font]
« Última modificación: Noviembre 15, 2013, 07:51:40 pm por Expermicid »

Desconectado pepeino123

  • *
  • Underc0der
  • Mensajes: 7
  • Actividad:
    0%
  • Reputación 0
  • SniferL4bs PoC
    • Ver Perfil
« Respuesta #1 en: Noviembre 15, 2013, 08:11:27 pm »
Mijo no reinventes la rueda, no te tortures, si andas haciendo scraping usa el modulo BeautifulSoup para esa tarea en especifico que quieres.

Seria tan simple como esto:
Código: [Seleccionar]
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc)

headers = soup.find_all('h2')
Obviamente html_doc puede ser esa cadena que tienes arriba o un archivo.

Y eso es todo estimado amigo.

Para instalar BeautifulSoup en Debian/Ubuntu con apt:
Código: [Seleccionar]
pt-get install python-bs4
con easy_install:
Código: [Seleccionar]
easy_install beautifulsoup4
Con pip
Código: [Seleccionar]
pip install beautifulsoup4

Suerte con eso!
« Última modificación: Noviembre 15, 2013, 08:14:38 pm por pepeino123 »
SniferL4bs PoC Underc0de

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #2 en: Noviembre 18, 2013, 10:34:30 pm »
Tampoco es una expresión regular tan compleja como para usar una libreria externa. Así lo haría yo (con compile y findall):

Código: Python
  1. import re
  2. import urllib
  3.  
  4. text = urllib.urlopen("http://www.sensacine.com/peliculas/en-cartelera/cines/").read()
  5.  
  6. expresion = re.compile("(<h2.+?</h2>)", re.DOTALL)
  7.  
  8. data = expresion.findall(text)
  9.  
  10. for u in data:
  11.     print u, "\r\n"

Saludos!

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #3 en: Noviembre 27, 2013, 03:07:04 pm »
gracias, por la ayuda. pero ando usando mechanize se me olvido decir. y quiero extraer la informacion solo con expresiones regulares. sin ningun otro parametro ni nd. cual seria el code? gracias de antemano.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #4 en: Noviembre 27, 2013, 03:10:55 pm »
gracias, por la ayuda. pero ando usando mechanize se me olvido decir. y quiero extraer la informacion solo con expresiones regulares. sin ningun otro parametro ni nd. cual seria el code? gracias de antemano.

¿qué información extraes con mechanize? si quieres pon el code y dime que quieres cambiar para poder ayudarte mejor

Saludos!

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #5 en: Noviembre 27, 2013, 03:54:47 pm »
Gracias hermano. me sirvio me dio esto:
Citar
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-1628/">
El Padrino
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-182745/">
Intocable
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-211083/">
One Direction: This Is Us
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-24944/">
Gladiator (El gladiador)
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-132874/">
El caballero oscuro. La leyenda renace
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-115362/">
El caballero oscuro
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-27070/">
El Señor de los Anillos: La Comunidad del Anillo
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-9393/">
La lista de Schindler
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-10568/">
Forrest Gump
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-126123/">
Toy Story 3
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-10126/">
Pulp Fiction
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-22092/">
El sexto sentido
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-196666/">
Los juegos del hambre: En llamas
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-6641/">
El silencio de los corderos
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-39186/">
El Señor de los Anillos: Las dos torres
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-190918/">
Django desencadenado
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-130440/">
Marvel Los Vengadores
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-13892/">
Seven
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-11736/">
Cadena perpetua
</a>
</h2>
<h2 class="tt_18 d_inline">
<a class="no_underline" title="" href="/peliculas/pelicula-39187/">
El Señor de los Anillos: El retorno del Rey
</a>
</h2>
ahora amigo como hago para sacar todos los href agregandole algo alante. por ejemplo:
sasasa.com/peliculas/pelicula-39187/"

gracias de antemano.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #6 en: Noviembre 27, 2013, 07:15:41 pm »
En ese caso tendría que guardar la dirección del la web en una variable y con otra expresión regular sacas los href y luego concatenas la dirección de la web con el href

Saludos!

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #7 en: Noviembre 27, 2013, 08:06:55 pm »
Citar
En ese caso tendría que guardar la dirección del la web en una variable y con otra expresión regular sacas los href y luego concatenas la dirección de la web con el href

ok hermano pero tienes un ejemplo para entender mejor? gracias de antemano.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 391
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« Respuesta #8 en: Noviembre 30, 2013, 11:14:04 pm »
Citar
En ese caso tendría que guardar la dirección del la web en una variable y con otra expresión regular sacas los href y luego concatenas la dirección de la web con el href

ok hermano pero tienes un ejemplo para entender mejor? gracias de antemano.

Código: Python
  1. # -*- coding: utf-8 -*-
  2.  
  3. import re
  4. import urllib
  5.  
  6. text = urllib.urlopen("http://www.sensacine.com/peliculas/en-cartelera/cines/").read()
  7. expresion = re.compile("(<h2.+?</h2>)", re.DOTALL)
  8. data = expresion.findall(text)
  9.  
  10. for u in data:
  11.     print "sasasa.com" + re.findall('<a.*?href="(.*?)".*?>', u)[0]

Saludos!

Desconectado juliianc95

  • *
  • Underc0der
  • Mensajes: 61
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #9 en: Diciembre 01, 2013, 12:21:57 am »
Gracias hermano. Problema resuelto

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3569
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon
"ayuda con fruitywifi-karma" no puedo activar el modulo karma.

Iniciado por cristobal92

Respuestas: 4
Vistas: 1369
Último mensaje Agosto 02, 2016, 12:03:45 pm
por cristobal92
[JAVA] Ayuda Sockets en Java

Iniciado por FERNANDX

Respuestas: 1
Vistas: 600
Último mensaje Abril 25, 2018, 08:49:50 pm
por Mortal_Poison
[Ayuda] Crear .zip o .rar de un "archivo"

Iniciado por Zentraedi

Respuestas: 5
Vistas: 1551
Último mensaje Marzo 03, 2017, 02:15:20 pm
por Zentraedi
Ayuda Metasploit "no session was created"

Iniciado por kush20

Respuestas: 3
Vistas: 474
Último mensaje Junio 03, 2018, 07:18:08 pm
por km0xu95