Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何处理由另一个模块引起的错误_Python_Python Requests_Urllib - Fatal编程技术网

Python 如何处理由另一个模块引起的错误

Python 如何处理由另一个模块引起的错误,python,python-requests,urllib,Python,Python Requests,Urllib,我正在尝试制作一个网络蜘蛛,一切都很正常,除了当我尝试获取链接时,我无法用try and expect控制输入 我注意到有两个错误正在发生 我在这里试图实现的是,如果除了常规URL之外的任何内容被作为输入提供,它将显示一条消息并再次请求输入 (我不知道如何处理错误) 该代码给出了 Unexpected error: <class 'urllib.error.URLError'> raise关键字引发异常并停止程序。 尝试删除它。它只会在打印时输出“未预料到的错误”,并停留在循环中,

我正在尝试制作一个网络蜘蛛,一切都很正常,除了当我尝试获取链接时,我无法用try and expect控制输入 我注意到有两个错误正在发生

我在这里试图实现的是,如果除了常规URL之外的任何内容被作为输入提供,它将显示一条消息并再次请求输入 (我不知道如何处理错误)

该代码给出了

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')