Python - 不要仅在一个 URL 上遵循重定向

2024-01-03

我想知道如何阻止 urllib2 跟踪我选择的 url 上的重定向请求。我在浏览时发现了这段代码,但它似乎在全球范围内都有效,我只希望它禁用某个网址上的重定向:

import urllib2
class RedirectHandler(urllib2.HTTPRedirectHandler):
    def http_error_302(self, req, fp, code, msg, headers):
        result = urllib2.HTTPError(req.get_full_url(), code, msg, headers, fp)
        result.status = code
        return result
    http_error_301 = http_error_303 = http_error_307 = http_error_302

opener = urllib2.build_opener(RedirectHandler())
webpage = opener.open('http://www.website.com').geturl()
print webpage

我还应该提到,我正在使用 urllib.urlopen('site.com') 请求一个网址,并且我希望允许发生第一个重定向,例如,site.com 重定向到 site.com/redirect 但随后它尝试再次从 site.com/redirect 重定向到 site.com/secondredirect 我希望脚本能够识别 url 中的“secondredirect”并阻止该请求发生。我希望我已经很好地解释了这一点,并希望看到一些答复,因为我花了几个小时试图解决这个问题:头痛:


import urllib.request

class RedirectFilter(urllib.request.HTTPRedirectHandler):
    def redirect_request(self, req, fp, code, msg, hdrs, newurl):
        if newurl.endswith('.jpg'):
            return None # do not redirect, HTTPError will be raised
        return urllib.request.HTTPRedirectHandler.redirect_request(self, req, fp, code, msg, hdrs, newurl)

opener = urllib.request.build_opener(RedirectFilter)

opener.open('http://example.com/')

这是针对 Python 3 的。对于 Python 2 替换urllib.request with urllib2.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - 不要仅在一个 URL 上遵循重定向 的相关文章

  • 如何传递架构以从现有数据帧创建新数据帧?

    要将 schema 传递到 json 文件 我们这样做 from pyspark sql types import StructField StringType StructType IntegerType data schema Stru
  • Python 类型提示 Dict 语法错误 可变默认值是不允许的。使用“默认工厂”

    我不知道为什么解释器会抱怨这个类型的字典 对于这两个实例 我得到一个 不允许可变默认值 使用默认工厂 语法错误 我使用的是 python 3 7 3 from dataclasses import dataclass from typing
  • Python - 比较同一字典中的值

    我有一本字典 d Trump MAGA FollowTheMoney Clinton dems Clinton Stein FollowTheMoney Atlanta 我想删除字符串列表中的重复字符串 该字符串是键的值 对于这个例子 期望
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • 我应该使用 Python 双端队列还是列表作为堆栈? [复制]

    这个问题在这里已经有答案了 我想要一个可以用作堆栈的 Python 对象 使用双端队列还是列表更好 元素数量较少还是数量较多有什么区别 您的情况可能会根据您的应用程序和具体用例而有所不同 但在一般情况下 列表非常适合堆栈 append is
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • 通过Python连接到Bigquery:ProjectId和DatasetId必须非空

    我编写了以下脚本来通过 SDK 将 Big Query 连接到 Python 如下所示 from google cloud import bigquery client bigquery Client project My First Pr
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 重新分配唯一值 - pandas DataFrame

    我在尝试着assign unique值在pandas df给特定的个人 For the df below Area and Place 会一起弥补unique不同的价值观jobs 这些值将分配给个人 总体目标是使用尽可能少的个人 诀窍在于这
  • Firebase Firestore:获取文档的生成 ID (Python)

    我可以创建一个新文档 带有自动生成的 ID 并存储对其的引用 如下所示 my data key value doc ref db collection u campaigns add my data 我可以像这样访问数据本身 print d
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并

随机推荐

  • AttributeError:“NoneType”对象没有属性“_inbound_nodes”

    我想实施损失函数 https i stack imgur com FI9JH png定义在这里 我使用fcn VGG16获得地图x 并添加激活层 x是fcn vgg16网络的输出 然后只需进行一些操作即可提取特征 co map Activa
  • std::is_function 无法将模板参数识别为函数

    我将函数指针传递到函数模板中 int f int a return a 1 template
  • Git 反转暂存区

    我的暂存区域已发生更改 而其他文件尚未暂存 某些文件在暂存区域内外都有更改 我想反转暂存区域的内容和未暂存的更改 是否存在快捷方式可以做到这一点 而不执行更复杂的操作 例如本地侧分支提交 差异或存储 等 谢谢 我是这样做的 将索引提交到临时
  • 注册接收者的正确模式?

    我需要注册一个接收者 我一直在使用以下模式 Override protected void onResume super onResume registerReceiver myReceiver new IntentFilter Overr
  • pip.conf 中私有 PyPI 的凭据

    我有一个私人 PyPI 存储库 有什么办法可以存储凭据pip conf如同 pypirc 我的意思是 目前在 pypirc你可以有这样的配置 distutils index servers custom custom repository
  • Laravel excel导出如何导出条件数据?

    我正在尝试从表中导出部分数据而不是所有数据 我正在使用 Maatwebsiteplugin https laravel excel com 我在控制器中尝试过以下代码 public function report Request reque
  • 带下划线的字母数字正则表达式模式

    我正在扩展 CodeIgniter 表单验证库来检查带下划线的字母数字值不包括破折号 但我对正则表达式模式非常陌生 需要一些帮助 目前对于 alpha numeric CI 有 return preg match a z0 9 i str
  • O(logn) 时间复杂度中 BST 的中位数

    我遇到了给出的解决方案http discuss joelonsoftware com default asp interview 11 780597 8 http discuss joelonsoftware com default asp
  • 管理带有重音字符的路径

    在批处理中 指定名称包含重音字符的路径 在文件系统中找不到文件 去掉路径中的所有重音字符 就可以找到这些文件 尽管如此 我必须管理用重音字符编写的路径 有什么办法可以解决这个问题吗 如果你需要了解我的操作系统 我在 7 32 Thanks
  • 将网站上传保存在子域中

    目前 每当用户通过我们的网站上传文件时 它都会被放入一个文件夹中 例如 www domain com Uploads Docs filename doc 但是 我想将其移至子域 例如 uploads domain com Docs file
  • mac c++ 编译器未找到

    我想今天的问题是 哪个 c 编译器是 mac 上的默认编译器 If I do xcrun find c 它说它在 Applications Xcode app etc 当我搜索 Xcode 目录时tr1 unordered map 在那 所
  • 如何正确定义TCustomFrame的子类?

    我试图定义 TCustomFrame 的子类 但在 TabOrder 属性上出现错误 这些是我遵循的步骤 Add a new TFrame descendant to the form Right click on project add
  • 防止滑动时触摸启动

    我在移动设备上有一个可滚动列表 他们希望人们能够通过滑动来滚动列表 并通过点击来选择一行 问题在于将两者结合起来 如果您实际滚动列表 我不希望选择一行 这是我发现的 滚动时不触发 click mouseup 滚动时触发 鼠标按下 触摸启动
  • Anaconda Navigator 无法打开 - 尝试了所有其他线程

    上周卸载了 Anaconda Navigator 现在重新安装后它就无法工作了 Windows 搜索没有找到 anaconda 导航器程序 但在 C Users admin Anaconda3 pkgs anaconda navigator
  • 使用 MappedByteBuffer 顺序写入长文件比普通 FileChannel 是否有性能优势?

    我试图了解使用 16k 缓冲区短时间连续调用 FileChannel write 和使用附加大小为 16k 映射多个 ByteBuffer 之间的区别 如下所述 https stackoverflow com a 7367952 96287
  • Oracle sqlldr 是否可以接受 TNS 条目作为 Oracle 10 和 11 中的实例限定符?

    是否可以使用与 Oracle 10 11 捆绑的 sqlldr 来使用完全限定的 TNS 条目 例如 在 SQLPlus 中 sqlplus user password description address host localhost
  • 是否有像集合一样的字典可以使用其值的属性作为键?

    而不是使用Dictionary
  • 如何将消息发送到Kafka中的特定分区?

    我创建了一个有很多分区的主题 使用控制台生产者 我想将消息发送到特定分区并通过控制台消费者查看 在控制台制作人上我尝试过这个 kafka console producer bat broker list localhost 9092 top
  • 不显眼地在购物车中添加区块

    对于我正在开发的模块 我想在购物车屏幕中添加一个块 我想不引人注目地执行此操作 并且我想将其放置在购物车内容下方和其他块之前 优惠券 运费估算 总计 我已经成功做到了不引人注目的部分 观察者聆听controller action layou
  • Python - 不要仅在一个 URL 上遵循重定向

    我想知道如何阻止 urllib2 跟踪我选择的 url 上的重定向请求 我在浏览时发现了这段代码 但它似乎在全球范围内都有效 我只希望它禁用某个网址上的重定向 import urllib2 class RedirectHandler url