python - 引用 URL 的路径部分,但不引用参数
问题描述
我有以下形式的 URL https://website.com/chill & relax/folder/file.txt?a=1&b=2
(该链接是一个虚拟示例,它并不意味着工作)
当我将此 URL 粘贴到 Firefox 中时,我可以获取所需的file.txt
,但是当我尝试使用 python 和请求检索文件时,它不起作用:
>>> import requests
>>> url = "https://website.com/chill & relax/folder/file.txt?a=1&b=2"
>>> requests.get(url)
Traceback (most recent call last):
[...]
urllib3.exceptions.NewConnectionError: <urllib3.connection.VerifiedHTTPSConnection object at 0x00982B70>:
Failed to establish a new connection: [WinError 10060] [...]
为什么 Firefox 可以请求文件但不能requests
?如何仅在我的 URL 的路径部分替换空格和“&”符号?
编辑:我现在相信请求实际上可以使用包含空格的 URL 执行请求。我认为这个问题与我的代理有关,Firefox 可以使用我的代理,但是在 PyCharm 中执行的请求命令被我的代理停止。
解决方案
对于路径编码,您可以使用:
from requests.utils import requote_uri
url = requote_uri("https://website.com/chill & relax/folder/file.txt?a=1&b=2")
但是即使在浏览器中,链接也对我不起作用。链接真的有效吗?
推荐阅读
- sql - 使用 SQL GROUP BY 计算持续时间时如何跳过间隙
- python - 编写我自己的 ufunc;输入类型不支持 ufunc
- html - 是否可以使用 Cypress 获取第 n 个孩子的内容?
- javascript - 我如何对firebase时间戳数据反向reactjs进行排序
- git - 如何分叉一个不在 github 上的 NPM 包?
- java - 通过 Java API 从 Excel 文件创建 AWS Quicksight 数据源
- javascript - 有没有办法拦截js中用[]触发的方法?
- javascript - Javascript请求延迟网站加载时间
- node.js - 托管在 Express 上的 React 应用程序未通过 Apache ProxyPass 正确路由
- c# - 是否可以在 C# 中为 Windows 窗体转移焦点?