在 Python 中使用 Mechanize 获取和捕获 HTTP 响应

2024-02-06

我正在尝试从 python 中的 Mechanize 获取响应代码。虽然我能够获得 200 状态代码,但其他任何内容都不会返回(404 抛出和异常,30x 被忽略)。有没有办法获取原始状态码?

Thanks


错误会抛出异常,因此只需使用 try:... except:... 来处理它们。

您的 Mechanize 浏览器对象具有 set_handle_redirect() 方法,您可以使用该方法打开或关闭 30 倍重定向。将其关闭,您会收到一个重定向错误,就像处理任何其他错误一样:

>>> from mechanize import Browser
>>> browser = Browser()
>>> resp = browser.open('http://www.oxfam.com') # this generates a redirect
>>> resp.geturl()
'http://www.oxfam.org/'
>>> browser.set_handle_redirect(False)
>>> resp = browser.open('http://www.oxfam.com')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 209, in open
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 261, in _mech_open
mechanize._response.httperror_seek_wrapper: HTTP Error 301: Moved Permanently
>>>
>>> from urllib2 import HTTPError
>>> try:
...    resp = browser.open('http://www.oxfam.com')
... except HTTPError, e:
...    print "Got error code", e.code
...
Got error code 301
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中使用 Mechanize 获取和捕获 HTTP 响应 的相关文章

  • Python setuptools:如何在 setup.py 中添加私有存储库 (gitlab)?

    我上传了 2 个包 它们位于我的 gitlab 存储库中 如果我想使用 pip 将它们安装在我的系统中 这很容易 因为 gitlab 可以帮助您 https docs gitlab com ee user packages pypi rep
  • 如何将base64字符串直接解码为二进制音频格式

    音频文件通过 API 发送给我们 该文件是 Base64 编码的 PCM 格式 我需要将其转换为 PCM 然后再转换为 WAV 进行处理 我能够使用以下代码解码 gt 保存到 pcm gt 从 pcm 读取 gt 保存为 wav decod
  • 从Python中的字符串中提取货币金额

    我正在制作一个程序 从字符串中获取货币并将其转换为其他货币 例如 如果字符串是 the car cost me 13 250 我需要得到 and 13250 我已经有了这个正则表达式 1 确实如此 但是该字符串很有可能有多个价格 并且全部使
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • 将 numpy 数组写入文本文件的速度

    我需要将一个非常 高 的两列数组写入文本文件 而且速度非常慢 我发现如果我将数组改造成更宽的数组 写入速度会快得多 例如 import time import numpy as np dataMat1 np random rand 1000
  • 查找模块中显式定义的函数 (python)

    好的 我知道您可以使用 dir 方法列出模块中的所有内容 但是有什么方法可以仅查看该模块中定义的函数吗 例如 假设我的模块如下所示 from datetime import date datetime def test return Thi
  • 在 macOS 中通过 Python 访问进程的压缩 RAM(顶部的 CMPRS)的方法?

    我试图弄清楚如何从 Python 访问任何给定进程占用的实际 RAM 量 我发现 psutil Process PID memory info rss 工作得很好 直到操作系统决定开始压缩某些进程的 RAM 然后 所有的 memory in
  • 当单词以“|”分隔时如何读取文件(埃因霍温)?

    在Python中 我有一个文件 其中的单词由 例如 city state zipcode 我的文件阅读器无法区分单词 另外 我希望我的文件阅读器从第 2 行而不是第 1 行开始 如何让我的文件阅读器分隔单词 import os import
  • 如何将 self 传递给装饰器?

    我该如何通过self key下面进入装饰器 class CacheMix object def init self args kwargs super CacheMix self init args kwargs key func Cons
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • 如何使用 sys.path.append 在 Python 中导入文件?

    我的桌面上有两个目录 DIR1 and DIR2其中包含以下文件 DIR1 file1 py DIR2 file2 py myfile txt 这些文件包含以下内容 file1 py import sys sys path append s
  • PyTorch DataLoader 对并行运行的批次使用相同的随机种子

    有一个bug https tanelp github io posts a bug that plagues thousands of open source ml projects 在 PyTorch Numpy 中 当并行加载批次时Da
  • 使用 numpy 在 python 中执行最大方差旋转

    我正在研究矩阵的主成分分析 我已经找到了如下所示的组件矩阵 A np array 0 73465832 0 24819766 0 32045055 0 3728976 0 58628043 0 63433607 0 72617152 0 5
  • 无法在 python 3.8 上将带有 webapp 的 python 部署到 azure

    我正在尝试使用部署一个测试项目Flask使用以下方法将框架迁移到 Azure 云中Azure CLI https learn microsoft com en us azure app service containers quicksta
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 在 virtualenvwrapper 中激活环境

    我安装了virtualenv and virtualenvwrapper用这个命令我创建了一个环境 mkvirtualenv cv 它有效 创建后我就处于新环境中 现在我重新启动了我的电脑 我想activate又是那个环境 但是怎么样 我使
  • 如何在 robobrowser-python 中发出 POST 请求

    http robobrowser readthedocs org en latest api html http robobrowser readthedocs org en latest api html 我正在尝试使用 APIbrows
  • 如何为所有用户安装 Anaconda python?

    Anaconda python 发行版 https store continuum io cshop anaconda 非常方便地部署科学计算环境 SCE 并根据需要切换python版本 默认情况下 安装会将 python 定位到 anac

随机推荐

  • iPhone:线程+释放池+[对象释放]=“消息发送到已释放的实例”

    我在 iPhone 上运行一些小代码时遇到了麻烦 基本上 我只需按一个按钮 它就会调用runTest 它运行test后台线程上的方法 这就是我创建自动释放池的原因 如果我运行下面的代码 我会在控制台上收到一条漂亮的消息 2010 09 07
  • AWS 公共 IP 限制是多少? (公共IP不是弹性IP)

    对于给定的 AWS 区域 您可以使用的公共 IP 数量是否有限制 不是弹性 IP 注意 我知道您最多只能使用 5 个弹性 IP 但是 如果您在创建 AWS 实例时选择 自动分配 IP 您将获得一个 IP 该 IP 在重新启动时会发生变化 我
  • 有没有办法将 ProGuard 与 MonoDroid 一起使用?

    我们的开发团队刚刚 大部分 在 Visual Studio 中使用 MonoDroid 完成了一个 Android 应用程序 因为它与银行业务有关 所以我们想尝试对其进行混淆 以增加一些安全性 防止任何人试图反编译它 最初 我认为我可以只使
  • 如何验证域凭据(来自本机代码)?

    我想针对域控制器验证一组凭据 例如 Username joel Password splotchy Domain STACKOVERFLOW 在 NET 3 5 及更高版本中您可以使用PrincipalContext ValidateCre
  • 使用 Schedule 库安排异步函数。 (使用discord.py重写)

    我的上一篇文章被错误地标记为重复 我不想做 asyncio sleep 因为它在几周内太不准确了 我需要时间表库 我发现了一个类似的线程 如何使用计划库运行异步函数 https stackoverflow com questions 515
  • 如何保持带有长标签的ggplot的大小

    我有一个图 它是每种事件类型的数量的简单条形图 我需要将情节的标签放在情节下方 因为某些事件的名称很长并且会横向挤压情节 我尝试将标签移动到图下方 但现在当有很多事件类型时 它会被向上挤压 有没有办法拥有静态绘图大小 即条形图 以便长图例不
  • 将 Bazaar 存储库转换为 SVN

    我编写了一些利用 pysvn 来分析项目的 python 脚本 我想在一个现在位于 bazaar repo 中的项目上运行这些 所以我想知道如何在我的机器上获取 bazaar repo 的副本 然后将其转换为 svn 标准 以便 pysvn
  • 无法在 Visual Studio 2010 中编辑或添加参考文件的路径

    无法编辑或添加参考文件的路径 我无法编辑或添加参考文件的路径 我在工作中继承了一个项目 当我打开项目并转到 Visual Studio 2010 IDE 中的引用部分时 会出现一些黄色的小警告标志 表明那里列出的引用有问题 但是 当我单击该
  • BIRT 中使用的多个 SQL 标准的 IF-ELSE 替代方案

    我想使用 BIRT 创建报告 我有 5 个 SQL 标准作为报告的参数 通常 当我有 3 个条件时 我会使用嵌套的 if else 作为带有 javascript 的 WHERE 语句 由于现在我有更多的标准 因此编写代码并检查可能性变得更
  • 从friend_request FQL表中检索已发送的好友请求列表

    我需要显示我已发送的好友请求列表 我尝试使用 FQL 选择时间 消息来自friend request WHERE uid from me 但是 这总是返回错误消息 uid from 字段未建立索引 有什么办法可以实现这一点吗 这是不可能的
  • Visual Studio 2013 无法保存、生成或重建解决方案

    突然 在我单击 清理解决方案 后 我无法再保存 构建或对解决方案执行任何操作 这似乎是一个错误 因为每次我点击 CTRL S 或只是 重建 或 构建 甚至 开始 按钮时 我都会收到此消息 我还仔细检查了所有组件 它们什么也没有 不见了 我需
  • OpenGL ES 2.0 中的多通道着色器

    首先 是否子程序需要 GLSL 4 0 那么它在 OpenGL ES 2 0 的 GLSL 版本中不可用吗 I quite了解什么是多通道着色器 那么我的照片是什么 使用一些着色器将一些东西 例如精灵 绘制到 FBO 将 FBO 视为大屏幕
  • AJAX 中的 onreadystatechange 不起作用

    当我发出ajax请求时 我遇到了onreadystatechange问 题 它曾经调用该函数 但是 现在它不调用processRequest 我不确定我是否编辑了某些内容或什么 有人可以帮忙吗 function createAjaxObje
  • 对于强大的、可扩展的开发平台,您建议使用什么框架? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 首先 让我为另一个框架问题道歉 但我认为这与通常的 我应该选择什么框架 有足够的不同 来保证它 这是我的情况 在过去的一年里 我一直在使用自定义
  • 有没有办法将 jQuery 模板(官方插件)与 jQuery UI 自动完成一起使用?

    我发现这个 hack 可以将 jTemplates 与 jQuery UI Autocomplete 结合使用 http www shawnmclean com blog 2011 02 using jqueryui autocomplet
  • 无法确定标签“!GetAtt”的构造函数[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我正在为 S3 上托管的网站编写 CFT YML 文件通过模板验证 没有任何问题 但构建代理返回以下错误 yaml co
  • Django 应用程序中 robots.txt 的推荐指令是什么?

    目前我的 Django 项目具有以下结构 app1 app2 django project manage py media static secret stuff and my robots txt看起来像这样 User agent All
  • Python 的环境路径不起作用?

    我已在新 PC 上安装了 Python 3 4 Python 可以工作 但我正在尝试让 pip 来解决这个问题 我已经为 Python 创建了一条路径 如下所示 C Python34 python exe 当我运行下面的代码时 C Wind
  • 由于 node-gyp 无法安装 npm:找不到 binding.gyp

    我一整天都在研究这个问题 并尝试了很多不同的事情 卸载节点并安装最新版本 使用 msvs version 标志设置为2010 2011 2012 2013 2015 删除 node gyp 文件夹 将 python 路径添加到 npmrc
  • 在 Python 中使用 Mechanize 获取和捕获 HTTP 响应

    我正在尝试从 python 中的 Mechanize 获取响应代码 虽然我能够获得 200 状态代码 但其他任何内容都不会返回 404 抛出和异常 30x 被忽略 有没有办法获取原始状态码 Thanks 错误会抛出异常 因此只需使用 try