/usr/bin/python # -*- coding:utf-8 -*- import urllib2 from urllib2 import URLError result_url=[] count...(line) except URLError, e: if hasattr(e,'reason'): #stands for URLError print "can not...有效,则可以正常通过urlopen取到response,并且response.getcode()等于200; 但若url无效,无论是无法找到服务器还是其他http错误,都无法通过urlopen返回response...这个时候,就需要通过返回的错误类型来判断错误到底是url错误还是http错误。上面的程序是通过错误类型所拥有的属性来判断的。...如果错误类型有“code”属性,则代表错误是HTTPError;如果属性有“reason”,则代表是URLError错误。 当然,也可以在except中分别指定抛出的错误类型,进而进行不同的处理。
该错误表示urlopen函数在解析URL时无法获取到正确的主机名和IP地址。这篇博客将帮助你了解这个错误的原因,并提供解决方案。...希望这篇博客能够帮助你解决URLError错误,并顺利进行网络数据爬取和Web开发。祝你成功!...函数功能urlopen函数的功能是发送HTTP请求并获取响应。它可以发送GET、POST等不同类型的请求,并可以设置超时时间、验证证书等参数。...除了发送GET请求,urlopen函数还可以发送POST等不同类型的请求。具体的使用方式和参数设置会有所不同,可以根据实际需求进行调整。...需要注意的是,urlopen函数也可能会抛出URLError异常,表示在发送请求过程中发生了错误,比如网络连接问题等。
(requset)except urllib2.URLError, e: print e.reason 我们利用了 urlopen方法访问了一个不存在的网址,运行结果如下: 1 [Errno 11004...] getaddrinfo failed 它说明了错误代号是11004,错误原因是 getaddrinfo failed 2.HTTPError HTTPError是URLError的子类,在你利用urlopen...处理方式:丢弃 300:该状态码不被HTTP/1.0的应用程序直接使用, 只是作为3XX类型回应的默认解释。存在多个可用的被请求资源。...处理方式:若程序中能够处理,则进行进一步处理,如果程序中不能处理,则丢弃 301:请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源 处理方式:重定向到分配的URL 302...如果发生的不是HTTPError,则会去捕获URLError异常,输出错误原因。
print('TIME OUT') 响应 响应类型、状态码、响应头 import urllib.request response = urllib.request.urlopen('https://www.python.org...as e: print(e.reason) 上述代码访问的是一个不存在的页面,通过捕捉异常,我们可以打印异常错误 这里我们需要知道的是在urllb异常这里有两个个异常错误: URLError...,HTTPError,HTTPError是URLError的子类 URLError里只有一个属性:reason,即抓异常的时候只能打印错误信息,类似上面的例子 HTTPError里有三个属性:code,...id=5#comment") print(result) 结果为: 这里就是可以对你传入的url地址进行拆分 同时我们是可以指定协议类型: result = urlparse("www.baidu.com...id=5#comment",scheme="https") 这样拆分的时候协议类型部分就会是你指定的部分,当然如果你的url里面已经带了协议,你再通过scheme指定的协议就不会生效 urllib.parse.urlunpars
data 是发往服务器的数据,当无数据发送时可省略该参数,是 bytes 类型的内容,可通过 bytes()函数转为化字节流 timeout 用于设置请求超时时间;单位是秒。...context 参数必须是 ssl.SSLContext 类型,用来指定 SSL 设置 抓取网页内容 使用 urllib.request.urlopen 可以很方便的获取网页内容,我们以获取 httpbin.org...urllib.error 网络通信是一个异步的通信过程,不可避免的会出现异常,此时就要用到 urllib.error 来处理错误『若不处理错误会造成程序中断执行』,这个会增加程序的健壮性。...URLError 是 urllib.error 异常的类的基类,URLError 是 OSError 的子类,当程序在运行过程中出现错误时会触发该异常。...error.URLError as e: print("Exception: ", e.reason) HTTPError 是专门用于处理 http 和 https 请求错误的异常类,HTTPError
, socket.timeout): print('TIME OUT') 响应 响应类型、状态码、响应头 import urllib.request response = urllib.request.urlopen...,类似404,500等错误 这个时候就需要我们捕捉异常,下面先写一个简单的例子 from urllib import request,error try: response = request.urlopen...通过捕捉异常,我们可以打印异常错误 这里我们需要知道的是在urllb异常这里有两个个异常错误: URLError,HTTPError,HTTPError是URLError的子类 URLError里只有一个属性...这里就是可以对你传入的url地址进行拆分 同时我们是可以指定协议类型: result = urlparse("www.baidu.com/index.html;user?...id=5#comment",scheme="https") 这样拆分的时候协议类型部分就会是你指定的部分,当然如果你的url里面已经带了协议,你再通过scheme指定的协议就不会生效 urlunpars
urlopen函数 语法格式如下: urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault...context:ssl.SSLContext类型,用来指定SSL设置。...HTTPError是URLError的一个子类,用于处理特殊HTTP错误例如作为认证请求的时候,包含的属性code为HTTP的状态码,reason为引发异常的原因,headers为导致HTTPError...区别: URLError封装的错误信息一般是由网络引起的,包括url错误。 HTTPError封装的错误信息一般是服务器返回了错误状态码。...) urlstring为字符串的url地址,scheme为协议类型。
urllib2 的异常错误处理 在我们用urlopen或opener.open方法发出一个请求时,如果urlopen或opener.open不能处理这个response,就产生错误。...这里主要说的是URLError和HTTPError,以及对它们的错误处理。...urlopen error [Errno 8] nodename nor servname provided, or not known> urlopen error,错误代码8,错误原因是没有找到指定的服务器...通常产生这种错误的,要么url不对,要么ip被封。...415 Unsupported Media Type 由于媒介类型不被支持,服务器不会接受请求。
HTTPError:是 URLError 的子类,专门用来处理 HTTP 请求错误,比如认证请求失败等。.../') print(response) 输出响应对象的类型和属性: import urllib.request response = urllib.request.urlopen('https://...) urllib.error.URLError: urlopen error _ssl.c:825: The handshake operation timed out> urllib.request.Request...异常处理 URLError 如果打开一个不存在的页面,就会出现 URLError 错误,该错误有一个 reason 属性,用于返回错误的原因。...HTTP 请求错误,比如认证请求失败等。
urllib2的异常错误处理 在我们用urlopen或opener.open方法发出一个请求时,如果urlopen或opener.open不能处理这个response,就产生错误。...这里主要说的是URLError和HTTPError,以及对它们的错误处理。....urlopen(request, timeout= 5) except urllib2.URLError, err: print err 运行结果如下: urlopen error [Errno...415 Unsupported Media Type 由于媒介类型不被支持,服务器不会接受请求。...这个错误代码为 IIS 6.0 所专用。 500.18 URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。 500.100 内部 ASP 错误。
URLError: 通常,URLError被抛出是因为网络请求出现了错误,比如服务器访问错误,或者访问的站点不存在,在这种情况下都会抛出一个URLError,这个错误是一个包含着reason和code的元组...,分别对应着错误消息和错误代码。...') try: urllib2.urlopen(req) except urllib2.URLError as e : print e.reason 在接触URLError之前,大家一定更早的接触过...# 同时处理HTTPError和URLError import urllib2 url = 'http://www.lixxxxxxxx.com' req = urllib2.Request(url...) try: response = urllib2.urlopen(req) except urllib2.HTTPError as e: print e.code print
在简单的情况下,我们会使用urllib2模块的最常用的方法urlopen。但只要打开HTTP URL时遇到错误或异常的情况下,就需要一些HTTP传输协议的知识。...urlopen方法也可通过建立了一个Request对象来明确指明想要获取的url。调用urlopen函数对请求的url返回一个response对象。..., data) response = urllib2.urlopen(req) the_page = response.read() headers——是字典类型,头字典可以作为参数在request...HTTPError是HTTP URL在特别的情况下被抛出的URLError的一个子类。下面就详细说说URLError和HTTPError。...,因为HTTPError是URLError的子类,所以应该把捕获HTTPError放在URLError前面,如不然URLError也会捕获一个HTTPError错误,代码参考如下: 1 import
我们可以使用 urllib.request 的 urlopen 方法来打开一个 URL,语法格式如下: urllib.request.urlopen(url, data=None,[timeout,]*...context:ssl.SSLContext类型,用来指定 SSL 设置。...urllib.error 包含了两个方法,URLError 和 HTTPError。...HTTPError 是 URLError 的一个子类,用于处理特殊 HTTP 错误例如作为认证请求的时候,包含的属性 code 为 HTTP 的状态码, reason 为引发异常的原因,headers...(urlstring, scheme='', allow_fragments=True) urlstring 为 字符串的 url 地址,scheme 为协议类型, allow_fragments 参数为
import urllib.request try: url = "http://47.104.14.43:8000" # timeout 设置超时的时间 file = urllib.request.urlopen...使用 urlopen() 方法发送 HTTP 请求时,如果 urlopen() 不能处理返回的响应内容,就会产生错误。...(request, timeout=5) except urllib.error.URLError as err: print(err) 输出结果为: urlopen error [Error 11004...] getaddrinfo failed> 报错信息是 urlopen error,错误代码是11004。...如果无法处理,urlopen() 会抛出 HTTPError。HTTPError 是 URLError 的子类,它的对象拥有一个整型的 code 属性,表示服务器返回的错误代码。
例如第二个笔记中提到的200状态码,表示请求成功,再比如常见的404错误等。.../" req = request.Request(url) try: response = request.urlopen(req) html = response.read...= "http://www.douyu.com/Jack_Cui.html" req = request.Request(url) try: responese = request.urlopen...如果URLError放在前面,出现HTTP异常会先响应URLError,这样HTTPError就捕获不到错误信息了。 ? ...= "http://www.douyu.com/Jack_Cui.html" req = request.Request(url) try: responese = request.urlopen
1.1 基本使用 from urllib.request import urlopen # 打开URL response = urlopen('https://www.example.com') #...query=1#fragment 三、urllib.error:处理网络错误 urllib.error模块包含了处理网络请求过程中可能出现的各种错误的异常类,如HTTPError和URLError。...3.1 捕获HTTP错误 from urllib.request import urlopen from urllib.error import HTTPError try: response...3.2 捕获其他网络错误 from urllib.request import urlopen from urllib.error import URLError try: response...= urlopen('https://www.example.com', timeout=1) except URLError as e: print(e.reason) # 输出:[Errno
.urlopen(url[, data][, timeout]) 参数: url: 可以是包含url的字符串,也可以是urllib2.request类的实例。 ...使用host替换原来的主机,使用type替换原来的请求类型。...时,urlopen抛出一个urlerror urllib2.URLError: urllib2.HTTPError: HTTPerror是HTTP URL在特别的情况下被抛出的URLError...在这种情况下,含有reason属性的异常将被抛出,以一种包含错误代码 和文本错误信息的tuple形式。 #!...(req) except urllib2.URLError,e: print e print e.reason 结果: urlopen error [Errno 11004] getaddrinfo
下面来介绍一下这个urlopen方法和其中应用的参数。 urlopen def urlopen(url, data=None, timeout=socket....,但是将作为error里面所有其它类型的基类使用。...URLError类初始化定义了reason参数,意味着当使用URLError类的对象时,可以查看错误的reason。...= hdrs self.fp = fp self.filename = url HTTPError是URLError的子类,当HTTP发生错误将举出HTTPError。...以上代码使用了try..exception的结构,实现了简单的网页爬取,当有异常时,如URLError发生时,就会返回reason,或者HTTPError发生错误时就会返回code。
例如第二个笔记中提到的200状态码,表示请求成功,再比如常见的404错误等。.../" req = request.Request(url) try: response = request.urlopen(req) html = response.read...= "http://www.douyu.com/Jack_Cui.html" req = request.Request(url) try: responese = request.urlopen...如果URLError放在前面,出现HTTP异常会先响应URLError,这样HTTPError就捕获不到错误信息了。...= "http://www.douyu.com/Jack_Cui.html" req = request.Request(url) try: responese = request.urlopen
当urlopen不能够处理一个response时,产生urlError。 不过通常的Python APIs异常如ValueError,TypeError等也会同时产生。...其他不能处理的,urlopen会产生一个HTTPError。 典型的错误包含"404"(页面无法找到),"403"(请求禁止),和"401"(带验证请求)。...HTTP状态码通常分为5种类型,分别以1~5五个数字开头,由3位整数组成: 200:请求成功 处理方式:获得响应的内容,进行处理 201:请求完成,结果是创建了新资源。...处理方式:丢弃 300:该状态码不被HTTP/1.0的应用程序直接使用, 只是作为3XX类型回应的默认解释。存在多个可用的被请求资源。...处理方式:若程序中能够处理,则进行进一步处理,如果程序中不能处理,则丢弃 301:请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源 处理方式:重定向到分配的URL 302
领取专属 10元无门槛券
手把手带您无忧上云