Python 如何处理由另一个模块引起的错误
我正在尝试制作一个网络蜘蛛,一切都很正常,除了当我尝试获取链接时,我无法用try and expect控制输入 我注意到有两个错误正在发生 我在这里试图实现的是,如果除了常规URL之外的任何内容被作为输入提供,它将显示一条消息并再次请求输入 (我不知道如何处理错误) 该代码给出了Python 如何处理由另一个模块引起的错误,python,python-requests,urllib,Python,Python Requests,Urllib,我正在尝试制作一个网络蜘蛛,一切都很正常,除了当我尝试获取链接时,我无法用try and expect控制输入 我注意到有两个错误正在发生 我在这里试图实现的是,如果除了常规URL之外的任何内容被作为输入提供,它将显示一条消息并再次请求输入 (我不知道如何处理错误) 该代码给出了 Unexpected error: <class 'urllib.error.URLError'> raise关键字引发异常并停止程序。 尝试删除它。它只会在打印时输出“未预料到的错误”,并停留在循环中,
Unexpected error: <class 'urllib.error.URLError'>
raise关键字引发异常并停止程序。
尝试删除它。它只会在打印时输出“未预料到的错误”,并停留在循环中,而不会停止程序。这里的问题是您再次提出。如果在打印m之后删除加薪,它应该按照您想要的方式工作。是,如果我删除加薪,它会工作,但是否有办法解决此错误而不是空白例外是,如果我删除了raise,它会起作用,但是否有任何方法来解决此错误而不是空白例外您可以通过以下方式捕获此异常:除了urllib.error.urleror:噢,真的很抱歉,这是一个新手犯的错误,它不起作用,因为它不识别urllibit give
未定义的变量urllib
,我想我不能像这样解决它您需要像这样导入它:from urlib.error导入URLError,然后:except URLError捕获特定类型的异常也是最佳实践。你不应该有裸露的例外条款。相反,您应该捕获URLError
。
Unexpected error: <class 'urllib.error.URLError'>
import urllib.request as ur
from bs4 import BeautifulSoup
##core
while True:
try:
url = input("please enter your site (with no http:// ) : ")
link = ur.urlopen("http://"+url)
break
except:
print("please enter a valid url ")
raise
source=link.read()
scrapy = BeautifulSoup(source,'html.parser')