Autor
		 | 
		
			Tema: Ayuda con python, expresiones regulares y urllib  (Leído 3,643 veces)
		 | 
	 
 
	
		
			
				
					
						
							madoko
							
								
								  Desconectado
								Mensajes: 79
								
								
								
								
								
								  
							 
						 | 
						
							
							 
							
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
							
						 | 
						
							
							 
							
que tira de resultado? o da un error
  personalmente haria el codigo diferente 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							buenas 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							madoko
							
								
								  Desconectado
								Mensajes: 79
								
								
								
								
								
								  
							 
						 | 
						
							
							 
							
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
								Mensajes: 438
								
								
								
								
								
								  
							 
						 | 
						
							
							 
							
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. for n in re.findall('\d+', text):     print n 
 
 Saludos!  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							madoko
							
								
								  Desconectado
								Mensajes: 79
								
								
								
								
								
								  
							 
						 | 
						
							
							 
							
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
								Mensajes: 438
								
								
								
								
								
								  
							 
						 | 
						
							
							 
							
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
								Mensajes: 79
								
								
								
								
								
								  
							 
						 | 
						
							
							 
							
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
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 |  
	 |  
 
	 
	
 
			 
			
				
					
						| Mensajes similares | 
					 
					
						 | 
						Asunto | 
						Iniciado por | 
						Respuestas | 
						Vistas | 
						Último mensaje | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Expresiones regulares --->(Python)[Resuelto]
							 
							Scripting
						 | 
						
							¨°o.O (ßa¢Kg|å§§) O.o°
						 | 
						
							2
						 | 
						
							5,272
						 | 
						
							 
							
								29 Marzo 2010, 02:21 am 
								por Novlucker
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Ayuda con expresiones regulares [Python]
							 
							Scripting
						 | 
						
							wolvelopez
						 | 
						
							7
						 | 
						
							6,014
						 | 
						
							 
							
								27 Julio 2011, 15:53 pm 
								por wolvelopez
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Ayuda con expresiones regulares en vb.net
							 
							.NET (C#, VB.NET, ASP)
						 | 
						
							<housedir>
						 | 
						
							3
						 | 
						
							3,337
						 | 
						
							 
							
								31 Agosto 2013, 19:37 pm 
								por Eleкtro
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							[ayuda][python]problema con expresiones regulares
							 
							Scripting
						 | 
						
							daryo
						 | 
						
							3
						 | 
						
							2,920
						 | 
						
							 
							
								16 Enero 2014, 04:38 am 
								por Once
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							[PYTHON ]Ayuda expresiones regulares
							 
							Python
						 | 
						
							aangrymasther
						 | 
						
							1
						 | 
						
							4,509
						 | 
						
							 
							
								20 Diciembre 2022, 16:29 pm 
								por aangrymasther
							
						 | 
					 
				 
			    |