即使页面存在,Python urllib2.urlopen也会返回302错误

2023-12-09

我正在使用Python函数urllib2.urlopen阅读http://www.bad.org.uk/网站,但我不断收到 302 错误,即使当我访问该网站时它加载正常。有人知道为什么吗?

import socket 

headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' }

socket.setdefaulttimeout(10)

try:
    req = urllib2.Request('http://www.bad.org.uk/', None, headers)
    urllib2.urlopen(req)
    return True         # URL Exist
except ValueError, ex:
    print 'URL: %s not well formatted' % 'http://www.bad.org.uk/'
    return False        # URL not well formatted
except urllib2.HTTPError, ex:
    print 'The server couldn\'t fulfill the request for %s.' % 'http://www.bad.org.uk/'
    print 'Error code: ', ex.code
    return False
except urllib2.URLError, ex:
    print 'We failed to reach a server for %s.' % 'http://www.bad.org.uk/'
    print 'Reason: ', ex.reason
    return False        # URL don't seem to be alive

打印错误:

The server couldn't fulfill the request for http://www.bad.org.uk//site/1/default.aspx.
Error code:  302

页面位于http://www.bad.org.uk/当 cookie 被禁用时就会被破坏。

http://www.bad.org.uk/返回:

HTTP/1.1 302 Found
Location: http://www.bad.org.uk/DesktopDefault.aspx
Set-Cookie: Esperantus_Language_bad=en-GB; path=/
Set-Cookie: Esperantus_Language_rainbow=en-GB; path=/
Set-Cookie: PortalAlias=rainbow; path=/
Set-Cookie: refreshed=true; expires=Thu, 04-Nov-2010 16:21:23 GMT; path=/
Set-Cookie: .ASPXAUTH=; expires=Mon, 11-Oct-1999 23:00:00 GMT; path=/; HttpOnly
Set-Cookie: portalroles=; expires=Mon, 11-Oct-1999 23:00:00 GMT; path=/

如果我随后要求http://www.bad.org.uk/DesktopDefault.aspx without设置这些 cookie,它会给出另一个 302 和一个指向自身的重定向。

urllib2忽略 cookie 并发送不带 cookie 的新请求,因此会导致该 URL 出现重定向循环。要处理这个问题,您需要添加一个 cookie 处理程序:

import urllib2
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
response = opener.open('http://www.bad.org.uk')
print response.read()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

即使页面存在,Python urllib2.urlopen也会返回302错误 的相关文章

随机推荐

  • 如果失败X次,nodejs重试功能

    我希望我的函数执行 X 3 次直到成功 在我的情况下我正在跑步kinesis putRecord 来自 AWS API 如果失败 我想再次运行它 直到成功 但尝试次数不超过 3 次 我是 NodeJS 新手 我写的代码很难闻 const p
  • 从复合组件执行 JavaScript

    美好的一天 我有一个问题困扰了我几个小时 这非常简单 我尝试在呈现复合组件时调用 执行 JavaScript 就像您可以使用 html 标签 body 和 onload 执行的操作一样 如何引用要执行的内联 JavaScript
  • BufferedWriter 未将所有内容写入其输出文件

    我有一个 Java 程序 它从文件中逐行读取一些文本 并将新文本写入输出文件 但并不是我写给我的所有文字BufferedWriter程序完成后出现在输出文件中 这是为什么 详细信息 该程序获取 CSV 文本文档并将其转换为 SQL 命令以将
  • 想要创建一个简单的图像亮度控制滑块

    我想实现一个滑块控件来改变图像的亮度 就像这个链接中显示的那样 http camanjs com examples 我对 javascript 相当陌生 事实证明这相当困难 所以现在 我正在使用 CamanJS 库 但不幸的是无法复制它 我
  • 即使两个字符串 s1 和 s3 具有相同的哈希码,== 如何返回 false? [复制]

    这个问题在这里已经有答案了 public static void main String args String str1 java String str2 str1 intern String str3 new String str1 i
  • 如何在 Google App Engine 上读取 Excel 文件

    我正在寻找 python 库的 java 替代品 这是问题如何在 Google App Engine 上读取 Excel 文件 看看博客帖子 如何在GAE上生成Excel文件 它讨论了使用JExcelAPIGAE 中的库 JExcelAPI
  • 如何在WPF中绘制1216个画布元素而不挂应用程序

    我正在开发一个应用程序 我想添加一些很酷的图标 因为我使用的是漂亮的 MahApps 库 所以我想在 MahApps Metro MahApps Metro Resources Icons xaml 中对图标进行可视化 所以我做了一些字符串
  • 如何在本地 tomcat 服务器上部署 angular2 应用程序?

    我一直在使用 lite 服务器开发 angular2 应用程序 现在我想在 tomcat 服务器上部署这个应用程序以与 java 后端连接 我一直在使用 Angular cli 我使用命令 ng build prod 来生成 dist 文件
  • 如何使用jquery获取div值?

    我试图在 chrome 控制台中使用 jquery 获取 div 值 div class col md 3 div class vou col h4 Free Large Bucket h4 span class sku info Vouc
  • PHPUnit 测试 Laravel 资源控制器的异常

    是否可以使用 Laravel 资源控制器测试异常 每次我尝试执行以下操作 expectedException Exception expectedExceptionMessage Just testing this out public f
  • .Net Maui:是否可以将字符串转换为绑定内的颜色?

    参考之前的一个问题 Net maui 如何在绑定中引用颜色 我有一个 CollectionView 绑定到从 SQLite 数据库填充的 ObservableCollection 我想根据数据库表中保存的颜色字符串显示每一行 但是 我只想将
  • 使用 Three.js 从一侧看不到脸部

    我有一个 OBJ 文件 其中加载了 JPG 纹理 从一侧看 脸部是可见的 但从另一侧看 它们是不可见的 脸部可见 有点暗 抱歉 其他侧面 面孔不可见 我尝试添加model doubleSided true 但这似乎并没有改变任何事情 在材料
  • 即使用户调慢时钟,如何限制日常使用?

    我有一个 IOS 应用程序 需要跟踪每天免费使用的持续时间 一旦超过阈值 用户将必须购买该应用程序或等待第二天才能解锁当天的免费使用分钟数 是否有一种本地方法可以检测用户是否已调回时钟 假设没有互联网连接来与时间服务器同步 UIApplic
  • 为什么参数要“借用”值? [复制]

    这个问题在这里已经有答案了 这是一个示例 struct X u32 impl X fn f mut self v u32 fn main let mut x X 42 works let v x 0 x f v cannot use x 0
  • 无法阻止被动事件侦听器内的默认行为 - Swipebox Movie

    我正在使用 Swipebox http brutaldesign github io swipebox 我知道我可以像这样用滑动框幻灯片打开内容 Link to click a href mydiv class my swipebox Cl
  • 如何在 C# 中的富文本框中为文本着色? [复制]

    这个问题在这里已经有答案了 可能的重复 C 如何设置 RichTextBox 中文本的颜色 在 Visual C NET 中 我想在将特定文本输入到富文本框中时更改其颜色 例如 我可能想为世界 hi 着色 因此当用户在富文本框中键入内容时
  • KeyDown 事件未触发,KeyPreview 设置为 true

    我正在构建一个小型表单应用程序 我刚刚启动它 但我有这个问题 如果我将 Control 放入表单 则 KeyDown 事件不会触发 我知道 KeyPreview 属性 并将其设置为 true 但这没有帮助 我也尝试设置 专注于主要形式 也没
  • 将文本框字符串转换为浮点数?

    我基本上试图在 Visual Studio 2008 中编写一个基本转换器 并且我有 2 个文本框 一个从用户获取输入 另一个给出结果输出 当我按下按钮时 我希望第一个文本框中的输入乘以 4 35 然后显示在第二个文本框中 这是到目前为止我
  • 如何在 Swift 中获取 Yosemite 之后当前的 wifi 网络名称?

    在小牛队我用的是 CWInterface interface 获取当前连接的网络 具有已被弃用对于优胜美地 与往常一样 Apple 文档没有提供有关此主题的指导 那么如何使用 Swift 获取 Yosemite 中当前连接的 Wifi 网络
  • 即使页面存在,Python urllib2.urlopen也会返回302错误

    我正在使用Python函数urllib2 urlopen阅读http www bad org uk 网站 但我不断收到 302 错误 即使当我访问该网站时它加载正常 有人知道为什么吗 import socket headers User A