如何使用Python获取网站的协议(http或https)

2024-06-09

我只是在想我们如何模仿浏览器(比如 Chrome)如何使用 Python 检测网站的协议。例如我们在地址栏输入“stackoverflow.com”,然后回车,浏览器会自动检测到并将url更改为“https://stackoverflow.com https://stackoverflow.com“(添加网站的协议),我想知道我们如何在Python中做到这一点,就像:

url = "stackoverflow.com"
browser = Browser (url) # Browser is a class that we can get website content from url, get its protocol,...
print browser.protocol

https

有没有任何库或包可以帮助做到这一点?多谢。

编辑:我的问题很独特,因为其他问题询问如果我们输入http如何重定向到https,正如我提到的,我们可以在第一阶段自动检测而无需虚拟协议吗?


它适用于 stackoverflow,因为当您第一次在端口 80(http 端口)上访问 stackoverflow.com 时,stackoverflow 的服务器会通知浏览器该链接已永久移至 https。

要在 Python 中检测相同的内容,请使用requests库,像这样:

>>> import requests
>>> r = requests.get('http://stackoverflow.com') # first we try http
>>> r.url # check the actual URL for the site
'https://stackoverflow.com/'

要了解 URL 如何更改,请查看历史记录对象,您将看到 301 响应,这意味着 URI 发生了变化永久移动 https://httpstatuses.com/301到一个新地址。

>>> r.history[0]
<Response [301]>
>>> r.history[0].url # this is the original URL we tried
'http://stackoverflow.com/'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Python获取网站的协议(http或https) 的相关文章

随机推荐

  • Typescript 有序字典

    我需要存储相对大量的按索引排序的数据 类似于可编辑的聊天 按时间排序并随机访问进行编辑 项目数量相对较多 索引 操作的数量与 排序 操作的数量相似 我不会每次都阻止 搜索 或 排序 的计算 并且我会搜索更智能的集合 我试图找到有序字典集合
  • WPF 自动完成框和 Enter 键

    我试图让 WPF AutoCompleteBox 在按下 Enter 键时引发 KeyDown 事件 我使用的是普通的 KeyDown 挂钩 它适用于除 Enter 键之外的所有内容 有谁知道我该如何解决这个问题 You could inh
  • 如何删除名称最大的目录?

    我有一个包含子目录的目录 其中一些名称是数字 不看的话 我不知道数字是多少 如何删除名称最大的子目录 我认为解决方案可能会将子目录按相反顺序排序 并选择以数字开头的第一个子目录 但我不知道该怎么做 感谢您的帮助 cd yourdir go
  • 使用 Alpha 渲染纹理问题

    当我渲染到纹理 然后绘制相同的图像时 它似乎使一切变得更暗 要获取此图像 http img24 imageshack us img24 8061 87993367 png http img24 imageshack us img24 806
  • Codeigniter 使用表单验证函数“匹配”子数组 POST

    上周刚开始使用 CI 并遇到了这个问题 里面要放什么matches如果我将表单数据作为数组传递 函数会怎样 我使用 html 表单中的数组来定位单个数组内的所有输入字段 以防我想传递用户生成的输入 例如多个电话号码或电子邮件 所以所有东西都
  • 使用 Cuda 并行读取多个文本文件

    我想使用 CUDA 在多个文件中并行搜索给定字符串 我计划使用 pfac 库来搜索给定的字符串 问题是如何并行访问多个文件 示例 我们有一个包含 1000 个文件的文件夹 需要搜索 这里的问题是我应该如何访问给定文件夹中的多个文件 应该动态
  • 使用 zipfile 提取大文件

    我正在尝试使用以下命令提取 1 23 GB 的 zip 文件zipFile图书馆 但它给出了以下错误 compression type 9 deflate64 这是我的代码 zip ref zipfile ZipFile filepath
  • Web Api 请求在 IIS 上永远排队(状态:ExecuteRequestHandler)

    我目前在生产环境中遇到一些挂起 经过一番调查后 我发现大量请求在应用程序池的工作进程中排队 常见的事情是 每个长时间排队的请求都是一个Web api请求 我同时使用MVC and Web API在应用程序中 请求排队时间约为 3 小时 当应
  • 序言中的“如果”?

    有没有办法在序言中执行 if 操作 例如如果变量为 0 则执行一些操作 将文本写入终端 甚至不需要 else 但我找不到 if 的任何文档 是的 ISO Prolog 中有这样一个控制结构 称为 gt 你像这样使用它 condition g
  • Rails 错误“NoMethodError” - 我的第一个 ruby​​ 应用程序

    我对 Rails 完全陌生 所以答案可能非常简单 开始 我的页面生成此错误 NoMethodError in Tasks new Showing app views tasks new erb where line 3 raised und
  • Ruby 亚马逊图书搜索

    有人有一个好的 Ruby 脚本可以使用他们的 API 在 Amazon 上查找书籍 或其他产品 吗 我一直在使用亚马逊 ECS http www pluitsolutions com projects amazon ecs取得了巨大的成功
  • Django模型继承、过滤模型

    给出以下模型 不要介意仅用于说明的 TextFields class Base models Model field1 models TextField class Meta abstract True class Child1 Base
  • 是否应该使用间接标头包含?

    如果一个项目的标头包含第二个标头 并且它们都包含一个公共标头 那么从第一个标头中删除公共标头的包含并依赖通过第二个标头的间接包含是一种好的做法吗 例如 我知道stdint h can被删除temperature h but should i
  • 使用包含属性的键和值的字符串创建数组

    我检查了任何相关帖子 但没有找到 字符串没有问题 但我不知道如何实现它 我需要将以下字符串转换为对象 var a Integer 1 Float 2 0 nBoolean True Integer 6 nFloat 3 66 Boolean
  • 如何解决Python代码错误(TooManyRedirects:超过30个重定向)

    我已经使用 python coode 从 salesforce 检索数据 并且运行良好 几天后我运行了代码 但它没有运行 并向我显示错误消息 TooManyRedirects 超过 30 个重定向 我尝试搜索的含义但我没有找到任何结果 Py
  • 您会为 Linux 推荐哪种甘特图/项目管理工具? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我需要一个可在 Linux 中运行并具有甘特图的项目管理工具 它不一定是免费的 只是不贵 我不在乎它如何存储我提供的信息 只要我可以访问它即可 我一定
  • 如何在 viewDidLayoutSubviews 中获得正确的视图高度?

    void viewDidLayoutSubviews super viewDidLayoutSubviews NSLog viewDidLayoutSubviews view height f self view frame size he
  • Flow 不喜欢这段仅在对象存在时才有条件访问其属性的代码

    这是我的代码 flow var x a foo var key Math random gt 0 5 b a var value x hasOwnProperty key x key default console log value So
  • Spring RabbitMQ - 在具有 @RabbitListener 配置的服务上使用手动通道确认

    如何在不使用自动确认的情况下手动确认消息 有没有办法将其与 RabbitListener and EnableRabbit配置风格 大多数文档告诉我们使用SimpleMessageListenerContainer随着ChannelAwar
  • 如何使用Python获取网站的协议(http或https)

    我只是在想我们如何模仿浏览器 比如 Chrome 如何使用 Python 检测网站的协议 例如我们在地址栏输入 stackoverflow com 然后回车 浏览器会自动检测到并将url更改为 https stackoverflow com