Python - Beautifulsopup excepciones

 
Vista:

Beautifulsopup excepciones

Publicado por Josafat Corona (2 intervenciones) el 08/11/2018 16:32:02
Hola, tengo un código para contar una determinada palabra en una url (dados por es usuario) y contar la frencuancia de la palabra dentro de la pagina web, el problema es, ¿cómo hacer si el usuario da una url caída o que un texto cualquiera?
Por ejemplo si en lugar de poner una url como:
"https://www.google.com"
simple mente da un url:
"sjsjsdlf"

Aquí está mi código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import bs4 as bs
from bs4 import BeautifulSoup
import urllib.request
import os, re
from bs4 import Comment
 
url=input("URL: ")
palabra = input("Palabra:")
sauce=urllib.request.urlopen(url).read()
def cleanMe(html):
    soup = BeautifulSoup(html)
    for s in soup(['script', 'style']):
        s.decompose()
    return ' '.join(soup.stripped_strings)
 
 
soup = cleanMe(sauce)
print(soup)
#print (cleaned)
#soup = BeautifulSoup(sauce, 'html.parser')
#print(soup.get_text())
txt=soup#.get_text()
file = open("cont.txt", "w")
file.write(txt)
file.close()
cont=0
 
for line in open("cont.txt"):
	if palabra in line:
		print (line)
		cont=cont+1
 
print ("La palabra: \"",palabra,"\" se repite", cont," veces.")
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 1.437
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Beautifulsopup excepciones

Publicado por xve (1637 intervenciones) el 08/11/2018 18:21:43
Hola Josafat, para ello, puedes utilizar una excepcion...

1
2
3
4
try:
    sauce=urllib.request.urlopen(url).read()
except:
    print("Error")

También tienes que tener en cuenta los dominios con https!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar