问题标签 [urllib3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何使用 urllib3 打印原始 html 字符串?
我使用下面的语句来获取 html 字符串:
但输出是:
如何获取原始 html 字符串?
python - 使用 urllib3 下载文件的最佳方法是什么
我想HTTP
使用urllib3
. 我已经设法使用以下代码做到这一点:
但我想知道这样做的正确方法是什么。例如,它是否适用于大文件,如果没有,如何使此代码更容错和可扩展。
笔记。例如,使用urllib3
库对我来说很重要,因为我希望我的代码是线程安全的。urllib2
python - 无法按照 mailgun Api 中的建议通过 multidict 发送附件
我正在使用 python 2.7 并请求这取自 mailgun 的文档:
尝试按所述发送附件时,出现以下错误:
有任何想法吗?
问候,奥马尔。
python - 使用 urllib3 忽略证书验证
我正在针对具有自签名证书的私有服务使用 urllib3。有没有办法让 urllib3 忽略证书错误并提出请求?
使用以下内容时:
引发以下错误:
使用cURL
我能够从服务中获得预期的响应
python - 如何将原始 POST 数据传递到 urllib3?
尝试使用 urllib3 发布 JSON 编码的数据。只希望我的 POST 有效负载是原始 JSON 字符串,内容类型为 application/json。我只是看不到如何做到这一点。
urllib3 文档描述了在“字段”中发布数据,即带有(键,值)对的字典,例如 HTML 表单如何使用 URL 进行 URL 编码。但我不想那样做。
我能得到的最接近的是这个(我只是猜测将数据放在哪里,因为它没有记录在我能找到的任何地方):
这导致了这个 urllib3 错误:
感谢您的任何指点!
download - 如何分段下载文件
我正在编写一个程序,可以在任何地方下载最大 1Gb 的文件。现在我正在使用 requests 包下载文件,虽然它可以工作(我认为它有时会超时)但速度很慢。我已经看到了一些使用 urllib2 的多部分下载示例,但我正在寻找一种使用 urllib3 或请求的方法,如果该包有能力的话。
python - Google App Engine 上 python 2.7 SNI 上的 urllib3 错误
我正在尝试使用 SNI 从托管在 Google App Engine 上的网站下载 HTTPS 页面。无论我使用什么库,我都会收到以下错误:
我尝试以多种方式解决该错误,包括使用 urllib3 openssl monkeypatch:
但是我总是遇到上面提到的相同错误。
有任何想法吗?
python - 网络爬虫不能超过大约 1MB/秒的速度
我正在构建一个网络爬虫,它可以从数百万个域的列表中获取 1-3 页,我正在使用多线程的 Python,我尝试过使用 httplib、httplib2、urllib、urllib2、urllib3、请求和 curl 的多线程(最快的一堆)以及扭曲和scrapy,但它们都不允许我使用超过约10 mbits的带宽(我有60 mbit的速度),通常在大约100-300个线程时达到最大值,之后它会导致失败的请求. 我也遇到了 php/curl 的这个问题。我有一个刮板,它从谷歌加上带有 urllib3 和 Threads 模块(Python)的页面,并且最大限度地利用了我的 100mbit 连接(我相信这可能是因为它正在重新使用具有相同主机的开放套接字,而谷歌有一个快速网络响应)
这是我使用 pycurl 的脚本之一的示例,我正在从包含 url 的 csv 文件中读取 url。
瓶颈肯定是网络 IO,因为我的处理器/内存几乎没有被使用。有没有人成功编写过能够使用完整 100mbit 或更多连接的类似刮板?
非常感谢有关如何提高抓取代码速度的任何输入
python - 在代理后面时,Python 请求库无法处理 HTTPS URL 的重定向
我想我在使用 HTTPS 时发现了 Requests 库处理重定向的问题。据我所知,这只是服务器将 Requests 客户端重定向到另一个 HTTPS 资源时的问题。
我可以向您保证,我使用的代理支持 HTTPS 和 CONNECT 方法,因为我可以在浏览器中使用它。我正在使用 2.1.0 版的 Requests 库,它正在使用 1.7.1 版的 urllib3 库。
我在 wireshark 中查看了交易,我可以看到 https://www.paypal.com/ 的第一笔交易,但我没有看到https://www.paypal.com/home的任何内容。使用调试器在堆栈中进行更深入的调试时,我不断收到超时,所以我不知道从哪里开始。由于重定向,我绝对没有看到对 /home 的请求。因此,在将其发送到代理之前,它必须在代码中出错。
我想知道这是否真的是一个错误或者我做错了什么。只要您可以访问可以发送流量的代理,就很容易复制。请看下面的代码:
直接使用 urllib3 时也会发生这种情况。它可能主要是 urllib3 中的一个错误,Requests 在后台使用它,但我使用的是更高级别的请求库。见下文:
这是使用请求时的回溯:
更新:
问题似乎只发生在 302(找到)重定向而不是正常的 301 重定向(永久移动)。另外,我注意到使用 Chrome 浏览器时,Paypal 不会返回重定向。使用请求时,我确实看到了重定向——即使我为此实验借用了 Chrome 的用户代理。我正在寻找更多返回 302 的 URL,以获取更多数据点。
我需要它适用于所有 URL,或者至少了解我为什么会看到这种行为。
python - 我应该选择哪个 urllib?
众所周知,python有两个内置的url库:
urllib
urllib2
和第三方库:
urllib3
如果我的要求只是通过 GET 方法请求 API,假设它返回一个 JSON 字符串。
我应该使用哪个库?他们有一些重复的功能吗?
如果urllib
能实现我的要求,但如果我的要求越来越复杂,urllib
不能适应我的功能,我当时应该导入另一个库,但我真的只想导入一个库,因为我认为导入所有它们会让我感到困惑,我认为它们之间的方法完全不同。
所以现在我很困惑我应该使用哪个库,我更喜欢urllib3
,我认为它可以一直满足我的要求,你怎么看?