问题标签 [lwp]

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 投票
1 回答
278 浏览

perl - Perl LWP内存泄漏?

我有一个持续运行的爬网(使用 Perl LWP),我使用 HTML::TreeBuilder 对爬网的网页进行提取。我孜孜不倦地删除了我创建的每个 HTML::TreeBuilder 实例,但是爬虫的内存占用量缓慢而稳定地上升(我看到它每爬到一个页面就会增加 10 到 30 个字节(我正在使用 Valgrind测量堆使用情况)。

现在流程是这样的:

  • 抓取页面
  • 创建新的树构建器对象
  • 解析页面
  • 删除树构建器对象

有没有人暗示 LWP 或 TreeBuilder 中是否存在内存泄漏?我已经阅读了一堆关于 LWP 存在内存泄漏的报告,但我还没有看到对此问题的回应。

我正在运行 Perl v5.10.1

谢谢!

0 投票
3 回答
8089 浏览

perl - 使 LWP::UserAgent HTTPS 超时工作

解决方案

正如@limulus 在我接受的答案中所报告的那样,这是Net::HTTPS6.00 版中的一个错误。始终警惕新的 .0 版本。这是该模块的错误版本和固定版本之间的相关差异:

原始问题

相关性:看到您的 HTTPS 客户端无限期阻塞是很烦人的,因为连接端点不可靠。

这个实验很容易在家里设置和重播。您只需要两件东西,一个用于捕获传入客户端的 tarpit 和一个 Perl 脚本。可以使用以下方式设置 tarpit netcat

然后,将脚本指向这个 tarpit:

这是要做什么?好吧,连接到NetCat打开的端口,然后……挂掉。无限期。至少在开发人员时间方面。我的意思是它可能会在十分钟或两个小时后超时,但我没有检查过;指定的超时时间不生效,在Linux上不生效,在Windows上也不生效(Win32,还没有检查Cygwin)。

使用的版本:

现在为timeoutTimeout参数。前者是LWP::UA的参数名称,后者是IO::Socket::SSL的名称,通过LWP::Protocol::https使用。(顺便说一句,为什么 metacpan HTTPS?嗯,至少它不是一个 tarpit。)我不知何故希望让这些参数一起传递:)

正如您所知,keep_alive与超时不起作用没有任何关系,我凭经验验证了这一点。:)

无论如何,在深入挖掘之前,有谁知道这里发生了什么以及如何使超时与 HTTPS 一起工作?很难相信我是第一个遇到这种情况的人。

0 投票
1 回答
412 浏览

lwp - LWP::UserAgent 6.04、POST 和 \n 中的新行为作为内容的一部分

从较旧的(5.8x?)版本升级到 LWP 6.04 后,我注意到在分布式应用程序中使用的一些代码会永远运行开始出现问题。我将其追溯到 POST 中处理 \n 的变化。

在客户端:

在服务器上:

客户端运行后服务器得到以下信息:

正如预期的那样,服务器端的 $good 最终成为 qq(这是一个文本行)。然而,$bad 最终变成了 qq(这是第一行\r\n这是第二行)。

有没有办法避免这种“有用的”替换,而无需重写和重新部署利用 LWP::UserAgent 先前行为的大量代码?

0 投票
2 回答
7571 浏览

perl - 使用 LWP 获取网页内容

我正在尝试使用 LWP::UserAgent 来收集网页的内容,但由于某种原因,当我运行脚本时,我得到一个 Windows 弹出窗口说:

Perl 命令行解释器已停止工作

我不知道为什么,因为我已将代码简化为以下基本要素:

可能是什么问题呢?

0 投票
2 回答
680 浏览

javascript - 如何在 perl 中使用 WWW::Scripter 模块设置引用者?

我的爬虫的简单代码是:

我需要在执行之前设置一个引用标题get。或者,我还需要设置其他标题,例如cookie等。我在文档中没有看到如何做到这一点。必须有一种方法,如何设置标题。如何?

0 投票
2 回答
486 浏览

javascript - 如何在 perl 中使用 WWW::Scripter 模块显式清除 cookie?

简单的perl代码是:

一个很好的功能WWW::Mechanize自动 cookie,这在某些时候很好,但有时需要清除 cookie。如何?

0 投票
1 回答
124 浏览

javascript - 在 Perl 中使用 WWW::Scripter 模块时,如何获取尽可能多的调试流量信息?

我在我的PerlWWW::Scripter应用程序中使用模块,我试图找出代码到底在做什么,它下载了哪些页面/图像/等,它获取了哪些标题和内容以及以什么顺序。

代码是这样的:

我需要做什么才能获得如上所述的一些调试信息、每个请求的标头和内容、请求的顺序等?

0 投票
1 回答
1750 浏览

perl - decode form-urlencoded to hash

The response I get to an LWP request is application/x-www-form-urlencoded is it possible convert the text of this to a hash via some object method?

0 投票
1 回答
1109 浏览

perl - perl LWP:连接超时与请求超时不同

我正在使用 LWP::UserAgent 与多台服务器上的 Web 服务进行通信;一次联系一个服务器。每个响应可能最多需要 30 分钟才能完成,因此我将 LWP 超时设置为 30 分钟。

不幸的是,如果服务器根本无法访问(例如,网络服务器已关闭),同样的超时也适用。因此,我的应用程序等待 30 分钟等待未运行的服务器。

设置两个单独的超时是否可行?

  1. 一个短的,等待建立连接。
  2. 一旦建立连接,一个更长的等待响应。
0 投票
1 回答
1350 浏览

perl - POST 数组到 LWP:只有第一个条目被发布

这是代码部分,我正在尝试使用 LWP 发布整个数组,但服务器只接收数组的第一行(0 索引),而其他人没有被发送到服务器,请指导我做错了什么