elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda con python, expresiones regulares y urllib
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con python, expresiones regulares y urllib  (Leído 2,726 veces)
madoko

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Ayuda con python, expresiones regulares y urllib
« en: 1 Diciembre 2015, 13:17 pm »

Estoy con un curso y me piden que extraiga los numeros que aparecen en un texto

import urllib
from BeautifulSoup import *
import re

html=urllib.urlopen("http://python-data.dr-chuck.net/comments_42.html").read()
soup=BeautifulSoup(html)

tags=soup("tr")
text=list()
for tag in tags:
    text.append(tag)
print text

for n in re.findall("\d+",text):
    print n

Estoy intentando usar las expresiones regulares, pero no entiendo cual es el problema.


« Última modificación: 1 Diciembre 2015, 18:54 pm por madoko » En línea

daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Ayuda con python, expresiones regulares y urllib
« Respuesta #1 en: 1 Diciembre 2015, 15:25 pm »

que tira de resultado?
o da un error

personalmente haria el codigo diferente


En línea

buenas
madoko

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: Ayuda con python, expresiones regulares y urllib
« Respuesta #2 en: 1 Diciembre 2015, 17:04 pm »

imagino que habrá mejores maneras, pero con lo que llevo dado en el cursillo, solo soy capaz de hacerlo así.

aparte, como no estaba seguro de que lo estaba haciendo bien, he dejado la comprobación de guardarlo todo en text, que se puede quitar y dejarlo en menos.

el error que me tira es que esto:
for n in re.findall(\d+,text):   
esta mal y falta algo o escribo algo mal.

P.D.: Imagino que aparte habrá otras formas de acceder a las webs y demás porque estoy viendo que python tiene un montón de modulos distintos
« Última modificación: 1 Diciembre 2015, 17:08 pm por madoko » En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: Ayuda con python, expresiones regulares y urllib
« Respuesta #3 en: 1 Diciembre 2015, 18:11 pm »

Habrías resuelto tu duda en 30 segundos si hubieras buscado antes en Google, por tu bien acostúmbrate a hacerlo. En google: python regular expression

Respecto a tu duda, lo que te falta es encerrar el patrón entre comillas.

Código
  1. for n in re.findall('\d+', text):
  2.    print n

Saludos!
En línea

madoko

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: Ayuda con python, expresiones regulares y urllib
« Respuesta #4 en: 1 Diciembre 2015, 18:36 pm »

Ojala....  

supongo que como estuve modificando el codigo para ver si daba con el fallo, eso se quedó mal cuando lo copie aqui, llevaba 2 horas mirando a ver si daba con ello.

Sigue dando el mismo fallo

Traceback (most recent call last):
  File "D:\COURSERA PYTHON\EJERCICIOS\prueba130.py", line 14, in <module>
    for n in re.findall("\d+",text):
  File "C:\Python27\lib\re.py", line 181, in findall
    return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer
« Última modificación: 1 Diciembre 2015, 19:12 pm por madoko » En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: Ayuda con python, expresiones regulares y urllib
« Respuesta #5 en: 1 Diciembre 2015, 20:17 pm »

Has verificado que tengas algo en la variable text?

El error dice:

Traceback (most recent call last):
  File "D:\COURSERA PYTHON\EJERCICIOS\prueba130.py", line 14, in <module>
    for n in re.findall("\d+",text):
  File "C:\Python27\lib\re.py", line 181, in findall
    return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer

Si el patrón está bien escrito entonces lo que falla es text. Estás seguro de que puedes pasarle una lista a re.findall?
En línea

madoko

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: Ayuda con python, expresiones regulares y urllib
« Respuesta #6 en: 2 Diciembre 2015, 00:14 am »

finalmente era una tonteria, muchas gracias a todos, dejo el programa por si mas adelante por casualidad le sirve a alguien


import urllib
from BeautifulSoup import *
import re

html=urllib.urlopen("http://python-data.dr-chuck.net/comments_42.html").read()
soup=BeautifulSoup(html)

tags=soup("tr")
text=list()
num=0
total=0
for tag in tags:
    text.append(tag)


for n in text:
    num=re.findall("\d+",str(n))
    print num
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Expresiones regulares --->(Python)[Resuelto]
Scripting
¨°o.O (ßa¢Kg|姧) O.o° 2 4,608 Último mensaje 29 Marzo 2010, 02:21 am
por Novlucker
Ayuda con expresiones regulares [Python]
Scripting
wolvelopez 7 4,995 Último mensaje 27 Julio 2011, 15:53 pm
por wolvelopez
Ayuda con expresiones regulares en vb.net
.NET (C#, VB.NET, ASP)
<housedir> 3 2,638 Último mensaje 31 Agosto 2013, 19:37 pm
por Eleкtro
[ayuda][python]problema con expresiones regulares
Scripting
daryo 3 2,291 Último mensaje 16 Enero 2014, 04:38 am
por Once
[PYTHON ]Ayuda expresiones regulares
Scripting
aangrymasther 1 2,551 Último mensaje 20 Diciembre 2022, 16:29 pm
por aangrymasther
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines