当最终网址为 https 时,如何使用 python 取消缩短(解析)网址?

2023-11-30

当最终的 url 是 https 时,我希望在 python 中取消缩短(解析)一个 url。我看到过这样的问题:如何使用 python 取消缩短 URL? (以及其他类似的),但是正如已接受答案的评论中所述,此解决方案仅在 url 未重定向到 https 时才有效。

作为参考,该问题中的代码(重定向到 http url 时工作正常)是:

# This is for Py2k.  For Py3k, use http.client and urllib.parse instead, and
# use // instead of / for the division
import httplib
import urlparse

def unshorten_url(url):
    parsed = urlparse.urlparse(url)
    h = httplib.HTTPConnection(parsed.netloc)
    resource = parsed.path
    if parsed.query != "":
        resource += "?" + parsed.query
    h.request('HEAD', resource )
    response = h.getresponse()
    if response.status/100 == 3 and response.getheader('Location'):
        return unshorten_url(response.getheader('Location')) # changed to     process chains of short urls
    else:
        return url

(注意-出于明显的带宽原因,我希望通过仅询问文件头的[即像上面的仅http版本]而不是通过询问整个页面的内容来实现)


您可以从以下位置获取该方案url然后使用HTTPSConnection if the parsed.scheme is https.
您还可以使用 requests 库来非常简单地完成此操作。

>>> import requests
>>> r = requests.head('http://bit.ly/IFHzvO', allow_redirects=True)
>>> print(r.url)
https://www.google.com
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当最终网址为 https 时,如何使用 python 取消缩短(解析)网址? 的相关文章

随机推荐

  • 将位图和 Png 图像转换为文本的简单方法,反之亦然

    将位图和 Png 转换为字符串并再次转换的最简单方法是什么 我一直在尝试通过内存流等进行一些保存 但我似乎无法让它工作 看来我没说清楚 我想要的是能够将 Bitmap 类 其中包含图像 转换为系统字符串 从那里我希望能够将我的字符串放置一会
  • 多媒体按键的 Java 接口

    有人有在 Java 中与多媒体 或 Fn 功能 键交互的经验吗 关于 Java 中的多媒体按钮似乎有一个不完整的讨论here 还有一个图书馆 JIntelliType 可用于在Windows中注册全局热键 但仅适用于全局注册 不适用于媒体键
  • C 中的 UDP 套接字

    我正在解决课堂作业问题 我想启动一个 UDP 服务器来侦听文件请求 它打开文件并使用 UDP 将其发送回请求客户端 这是服务器代码 Create UDP Socket if sockfd socket AF INET SOCK DGRAM
  • VB.NET - 鼠标坐标

    我有一个 vb net 应用程序 我想知道如何在窗体上单击鼠标时找到指针 鼠标 的坐标 没什么可说的 所以我就这样吧 D Thanks 将鼠标坐标放入文本框中的非常简单的代码 Private Sub Form1 MouseClick ByV
  • 使用 PTVS、IronPython 和 MongoDB

    我想使用 PTVS Visual Studio 的 Python 工具 开发一个应用程序 我下载了 PTVS 插件和 IronPython for Visual Studio 2012 它运行得很好 我的问题是 我可以将 MongoDB 与
  • 为什么弹性项目不会缩小到超过内容大小?

    我有 4 个 Flexbox 列 一切正常 但是当我向列添加一些文本并将其设置为大字体大小时 由于 Flex 属性 它使列比应有的宽度更宽 我尝试使用word break break word它很有帮助 但是当我将列的大小调整到非常小的宽度
  • JsonArray.Parse(...) 错误

    我正在开发一个适用于 Windows 8 的新闻应用程序 使用 C XAML 不幸的是 我在下载 JSON Feed 后遇到了一个奇怪的错误 通过验证 http jsonlint com 异步 下载成功 然后我想解析结果 var items
  • Oracle 如何列出两个日期之间的月份的最后几天

    我设法获取两个日期之间的所有天数 但我想获取两个日期之间几个月的所有最后一天 使用一个请求 2 个日期之间的所有日期 select to date 01 01 2000 dd mm yyyy LEVEL 1 as jour from dua
  • Ruby:根据整数数组对对象数组进行排序

    这看起来相当简单 之前就应该问过 但我在 Stack Overflow 上找到的所有内容似乎都不起作用 我有一个包含 4 个对象的数组 我想按特定顺序对其进行重新排序 所以 它看起来像这样 array Obj1 Obj2 Obj3 Obj4
  • 从 android studio 打开项目文件夹?

    我知道这是一个微不足道的功能 但是 Android Studio 中是否有一个选项可以将项目文件夹打开到文件资源管理器 来自 AS 附注 始终可以按照 AS 窗口标题上显示的路径导航到项目文件夹 You can press ShiftShi
  • 嵌套参考字段

    为了检索设备类型 我使用一个将检索设备模型 然后使用另一个使用设备模型的字段 typeID 引用设备类型来检索设备类型 但它显示以下警告 警告 失败的道具类型 无效的道具翻译类型选择 提供给 ReferenceField 的布尔值 预期函数
  • 使用 asyncio 时,如何在关闭事件循环之前允许所有正在运行的任务完成

    我有以下代码 asyncio coroutine def do something periodically while True asyncio async my expensive operation yield from asynci
  • 如何在Python中打印三角形?

    我想做一个打印三角形的函数 如下图所示 用户可以插入三角形的行号 第一行的总长度必须是奇数 我尝试使用下面的代码 def triangle n k 2 n 2 for i in range 0 n for j in range 0 k pr
  • 如何在 datagridview 列中动态显示数字计时器(秒表)c#?

    我有datagridview 其数据源是datatable 我在 datagridview 有两列 及时命名 加载 datagridview 后 我想添加一个名为 DURATION 的新列 它是一个计时器列 即基于 IN TIME DURA
  • 如何使用 Pandas apply() 函数对 API 进行异步调用

    我有大约 14 000 行数据框 并尝试通过调用 API 将一些数据填充到新列中 下面的代码检索预期的响应 但是 似乎每次迭代都等待响应进入下一行 这是函数 def market sector des isin isin isin isin
  • Java解析字符串到日期[重复]

    这个问题在这里已经有答案了 我正在尝试在 Java 中解析字符串以获取日期对象 我的字符串是 String date 2013 04 13 21 00 00 代码是 String myFormatString yyyy mm dd hh m
  • “else”错误之前预期的主要表达式[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我得到了expected primary expres
  • Javascript根据另一个下拉框值更改下拉框选项[重复]

    这个问题在这里已经有答案了 我正在练习 JavaScript 编程 我发现了一个问题 必须由一些专家来回答drop down boxes 场景是 我有一个drop down框提供了省份的一些可能选项以及第二个选项 城镇 该选项仅取决于省份中
  • 如何以层次结构显示非标准化数据?

    我的问题是我想以层次结构显示数据 如下所示 Democrat County Clerk 候选人1 候选人2 Magistrate 候选人1 候选人2 候选人3 但我正在检索这样的数据集 Party Office Candidate Demo
  • 当最终网址为 https 时,如何使用 python 取消缩短(解析)网址?

    当最终的 url 是 https 时 我希望在 python 中取消缩短 解析 一个 url 我看到过这样的问题 如何使用 python 取消缩短 URL 以及其他类似的 但是正如已接受答案的评论中所述 此解决方案仅在 url 未重定向到