问题标签 [urllib]

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.

0 投票
3 回答
10377 浏览

python - 如何通过 TOR 网络路由 urllib 请求?

如何通过 TOR 网络路由 urllib 请求?

0 投票
3 回答
11017 浏览

gzip - 在 Python 3 中解压缩 gzip 的服务器响应的最佳方法是什么?

我原以为这会起作用:

但事实并非如此。Dive Into Python在此示例中使用 StringIO,但这似乎在 Python 3 中缺失。正确的做法是什么?

0 投票
2 回答
6678 浏览

python - Python:将大文件下载到本地路径并设置自定义 http 标头

我正在寻找从 http url 下载文件到本地文件。该文件足够大,我想下载它并将其保存为块,而不是read()write()整个文件保存为一个巨大的字符串。

的界面urllib.urlretrieve本质上就是我想要的。但是,我看不到通过 下载时设置请求标头的方法 urllib.urlretrieve,这是我需要做的事情。

如果我使用,我可以通过它的对象urllib2设置请求头。Request但是,我没有看到将urllib2文件直接下载到磁盘上的路径(如urlretrieve. 相反,我似乎将不得不使用循环来迭代返回的数据块,自己将它们写入文件并检查我们何时完成。

urllib.urlretrieve构建一个可以工作但允许传入请求标头的函数的最佳方法是什么?

0 投票
2 回答
1419 浏览

python - Python/urllib 突然停止正常工作

我正在编写一个小工具来监控学校的开课情况。

我编写了一个 python 脚本,每隔几分钟就会从每个部门获取当前可用的课程。

该脚本运行正常,直到 uni 的网站开始返回:

Uni一定是屏蔽了我的服务器吧?好吧,并不是因为这是我直接从其他 PC 转到 URL 时得到的输出。但是,如果我通过 uni 网站上进行 POST 的中介表格,我不会收到该消息。

我请求的 URL 是https://s4.its.unc.edu/SISMisc/SISTalkerServlet

这就是我的 python 代码的样子:

我真的很难过!似乎 python 没有发送正确的请求。起初我认为它没有发送正确的帖子数据,但我将 URL 更改为我的 localbox,并且 apache 收到的帖子数据似乎很好。

如果您想查看系统的实际运行情况,请转到https://s4.its.unc.edu/SISMisc/browser/student_pass_z.jsp并单击“以访客身份进入”按钮,然后查找“课程可用性” . (现在你知道我为什么要建造这个了!)

最奇怪的是这一直工作到上午 11 点!我以前也遇到过同样的错误,但只持续了几分钟。这告诉我,与 uni 对我的服务器的任何阻塞相比,这在某处更成问题。

更新 根据建议,我尝试使用更合法的推荐人/用户代理。结果相同。这是我尝试过的:

0 投票
3 回答
13973 浏览

python - PayPal 的 Python 接口 - urllib.urlencode 非 ASCII 字符失败

我正在尝试实现 PayPal IPN 功能。基本协议如下:

  1. 客户从我的网站重定向到 PayPal 的网站以完成付款。他登录他的帐户,授权付款。
  2. PayPal 在我的服务器上调用一个页面,将详细信息作为 POST 传递。详细信息包括一个人的姓名、地址和付款信息等。
  3. 我需要从我的处理页面内部调用 PayPal 网站上的一个 URL,传回上面传递的所有参数,以及一个名为 'cmd' 的附加参数,其值为 '_notify-validate'。

当我尝试对 PayPal 发送给我的参数进行 urllib.urlencode 编码时,我得到:

我了解 urlencode 进行 ASCII 编码,在某些情况下,用户的联系信息可以包含非 ASCII 字符。这是可以理解的。我的问题是,如何使用 urllib2.urlopen(req) (或其他方法)对非 ASCII 字符进行编码以发布到 URL

细节:

我阅读了 PayPal 原始请求中的参数如下(GET 用于测试):

我用于从处理页面将请求发送回 PayPal 的代码是:

显然,只有当某人的姓名或地址或用于 PayPal 支付的其他字段不属于 ASCII 范围时,才会出现问题。

0 投票
2 回答
16790 浏览

python - 打开 python 3 urllib 的调试输出

在 python 2 中,可以通过执行从 urllib 获取调试输出

但是,在 python 3 中,这似乎已移至

但是,我直接使用 urllib 而不是 http.client 。如何设置它以便我的 http 请求以这种方式显示调试信息?

到目前为止,这是我正在使用的内容。如果我希望能够获得调试信息,最好的方法是什么?

0 投票
2 回答
3505 浏览

python - 在没有名称属性的 Python 中提交表单

背景:

在 Python 中使用 urllib 和 urllib2 可以进行表单提交。

您首先创建一个字典。

然后你使用 urllib 的 urlencode 方法来转换这个字典。

您现在可以使用 urllib2 发出 url 请求,并将变量 params 作为辅助参数传递,第一个参数是 url。

据我了解,urlencode 会自动将字典编码为 html 并添加输入标签。它将键作为名称属性。它需要字典中的值作为名称属性的值。Urllib2 通过 HTTP POST 请求发送此 html 代码。

问题:

如果您提交的 html 代码以标准方式格式化,并且 html 标记输入具有 name 属性,这没关系。

但是,存在html代码格式不正确的情况。并且 html 输入标签只有一个 id 属性没有 name 属性。是否有另一种方法可以通过 id 属性访问输入标签?还是可能有另一种方式?

解决方案:

?

0 投票
6 回答
111095 浏览

python - Python:从 urllib2.urlopen 调用中获取 HTTP 标头?

拨打电话 时是否urllib2获取整个页面?urlopen

我想只阅读 HTTP 响应标头而不获取页面。看起来像是urllib2打开了 HTTP 连接,然后获得了实际的 HTML 页面......或者它只是开始通过urlopen调用缓冲页面?

0 投票
2 回答
1183 浏览

buffer - 使用 Python 2.6 从 Web 保存二进制文件的最节省内存的方法?

我正在尝试使用 Python 2.6 和 urllib 从网络下载(并保存)二进制文件。

据我了解,read()、readline() 和 readlines() 是读取类文件对象的 3 种方法。由于二进制文件并没有真正分成换行符,因此 read() 和 readlines() 将整个文件读入内存。

选择随机 read() 缓冲区大小是在此过程中限制内存使用的最有效方法吗?

IE

我随意选择了 read(1000000) ,因为它可以工作并降低 RAM 使用率。我假设如果我正在使用原始网络缓冲区,则选择随机数量会很糟糕,因为如果传输速率太低,缓冲区可能会干涸。但似乎 urllib 已经在为我处理较低级别的缓冲。

考虑到这一点,选择任意数字好吗?有没有更好的办法?

谢谢。

0 投票
8 回答
70433 浏览

python - 如何知道 urllib.urlretrieve 是否成功?

urllib.urlretrieve即使远程http服务器上不存在该文件,它也会静默返回,它只是将一个html页面保存到命名文件中。例如:

只是静默返回,即使 google.com 服务器上不存在 abc.jpg,生成abc.jpg的也不是有效的 jpg 文件,它实际上是一个 html 页面。我猜返回的标头(httplib.HTTPMessage 实例)可用于实际判断检索是否成功,但我找不到任何httplib.HTTPMessage.

任何人都可以提供有关此问题的一些信息吗?