获取urllib2.urlopen失败时的错误页面

错误方法:

import urllib2
req = urllib2.Request('http://127.0.0.1/longerrorpage')
try:
    response=urllib2.urlopen(req)
except Exception,e:
    print e, response.read()
HTTP Error 404: Not Found

正确方法:

import urllib2
req = urllib2.Request('http://127.0.0.1/longerrorpage')
try:
    response=urllib2.urlopen(req)
except urllib2.HTTPError,e:
    print e.code
    print e.reason
    print e.geturl()
    print e.read()
404
Not Found
http://127.0.0.1/longerrorpage
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /longerrorpage was not found on this server.</p>
<hr>
<address>Apache/2.2.22 (Ubuntu) Server at 127.0.0.1 Port 80</address>
</body></html>

参考:http://stackoverflow.com/questions/2233687/overriding-urllib2-httperror-and-reading-response-html-anyway

时间: 2024-06-14 15:46:31

获取urllib2.urlopen失败时的错误页面的相关文章

解决404错误页面对网站优化的影响

很多网站莫名其妙的被降权,然而找不到原因在哪里.既没有作弊又没有优化过度,却遭到了搜索引擎"飞来横祸"的封杀.那么又是什么造成的呢?我们这里从404说起.对于初级站长可能不知道什么是404页面,更不懂404错误,以下内容我们进一步分析. 一:关于HTML状态码 404:服务器找不到指定资源;410:请求网页不存在(两者区别410表示永久性,410表示为临时不存在)不过两者之间搜索引擎一般会认为等同. 200:客户端请求已成功响应;301:URL永久定向某个链接;302:临时重定向某个链

ajax-关于extjs获取json数据,后台错误时怎么显示错误页面

问题描述 关于extjs获取json数据,后台错误时怎么显示错误页面 struts2返回json数据错误时,怎么捕获异常.跳转到错误页面.我写了个拦截器.session过期时跳转到login.jsp.可是他却直接给我弹出一个login.jsp源代码.查看网上都说struts的拦截器无法捕捉ajax的异常.那我又该如何做呢?改struts核心文件?求大神赐教! 解决方案 你可以设置响应头status代码为500,这样客户端才能捕获到错误执行failure回调,要不是200响应头会进入Ext.aja

asp.net中当服务器出错时显示指定的错误页面,同时把错误信息写入系统日志文件的探讨

asp.net|错误|服务器|显示|页面 asp.net中当服务器出错时显示指定的错误页面同时把错误信息写入系统日志文件的探讨 一,在Web.config中填写出错时显示的页面,可以根据不同的statusCode显示不同的出错页面.   <customErrors mode="On"  //如果设置为Off则出错只返回错误信息,不会跳到自己的指定页面defaultRedirect="/error/customerrorpage.aspx">    <

php curl登陆qq后获取用户信息时证书错误

这篇文章主要介绍了php curl登陆qq后获取用户信息时证书错误,需要的朋友可以参考下 今晚开放ecmall商城的QQ登陆功能,在回调时产生错误,file_get_contents函数执行时,没有抓取到正确的信息,于是改用curl,但是提示证书错误. 在网上找到了解决方法,就是去掉证书认证. 代码如下: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE)

racle-C#连接sde数据库,获取要素数据时出现错误:

问题描述 C#连接sde数据库,获取要素数据时出现错误: 错误信息: 格式太旧或是类型库无效. (Exception from HRESULT: 0x80028019 (TYPE_E_UNSUPFORMAT)) 我是读取好多个要素类,一起读取时,中间偶尔会出现这个问题.单独运行出错的那个时,又没有问题了 解决方案 参考:http://codego.net/265548/

我在做一个网站统计系统时,在统计页面的时候总是要刷新网站页面时才能获取客户端的基本信息?

问题描述 我在做一个网站统计系统时,在统计页面的时候总是要刷新网站页面时才能获取客户端的基本信息? 解决方案 解决方案二:问题不具体,你要统计什么?客户端的什么信息?你为什么要刷新页面呢?解决方案三:不刷新就得用Javascript+Ajax解决方案四:在页面加载的时候不就可以统计到客户端的信息了吗

c#+asp.net+mapxtreme 2005在运行web示例程序时怎么总是出现“COM+ 激活失败”这样的错误是怎么回事啊,高手指点啊!!!

问题描述 c#+asp.net+mapxtreme2005在运行web示例程序时怎么总是出现"COM+激活失败"这样的错误是怎么回事啊,高手指点啊!!!

iOS8.3备份微信消息时获取微信数据失败

原因: 由于在iTunes中勾选了"给iPhone备份加密",导致同步助手无法成功获取微信数据. 解决: 1.将苹果设备连接至电脑,打开iTunes.从左上角点击设备图标,切换至iTunes设备信息页面. 2.将"备份"功能中的"给iPhone备份加密" 取消勾选(不选中),最后单击右下角"应用"按钮保存设置. 3.在同步助手中的"获取微信数据失败"提示中点击"重新检查"即可.

webservice调用失败:基础连接已经关闭,接受时发生错误

问题描述 c#写的webservice,提供接口函数A,此函数后台调用c++写的dll读取服务器上的文件,当文件比较大时,该函数比较耗时,发现当耗时大概达到10秒时,程序就会报"基础连接已经关闭,接受时发生错误".服务器是阿里云(winserver2008,64位),iis7.5.请问是什么原因? 解决方案 解决方案二:超时了????解决方案三:web.config中加入或者修改<httpRuntimeexecutionTimeout="number(inseconds