问题标签 [www-mechanize]

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 回答
681 浏览

perl - 用于抓取 pdf 的 Perl Mechanize 模块

我有一个网站,其中上传了许多 pdf。我想要做的是下载网站上所有的 PDF。为此,我首先需要向网站提供用户名和密码。在搜索了一段时间后,我发现了可以完成这项工作的 WWW::Mechanize 包。现在问题出现在这里,我想在网站中进行递归搜索,这意味着如果链接不包含 PDF,那么我不应该简单地丢弃链接,而是应该浏览链接并检查新页面是否包含包含的链接PDF。这样,我应该彻底搜索整个网站以下载所有上传的 PDF。关于如何做到这一点的任何建议?

0 投票
1 回答
141 浏览

perl - 按名称而不是按索引获取输入

HTML 片段:

我正在使用 WWW::Mechanize 填写表格,其输入在上面。我正在这样做:

因为它是表单中的第一个输入。但是有没有办法将它称为id

0 投票
2 回答
4709 浏览

perl - WWW::Mechanize-> 获取错误(不支持 HTTPS)

我正在尝试使用 WWW::Mechanize 登录雅虎。但是,当我尝试获取登录页面时,它给出了错误

我安装了 Crypt::SSLeay,我认为它应该处理 HTTPS 请求。为什么会给出这个错误?

我什至在脚本的开头说“使用 Crypt::SSLeay”,它没有给出关于它没有安装的错误。

会去YA!第一个页面(http)然后“单击”“登录”(https)链接帮助?

任何帮助或建议将不胜感激。

编辑:我试图安装 LWP::Protocol:https,但它失败了。

再次编辑:安装带有测试的 Crypt::SSLeay 会导致同样的失败。-_-

第三次编辑:谢谢你们帮助我,伙计们。这么晚才回复很抱歉。这是 Redhat 9,整个安装过程非常糟糕。

我最初的目标是安装 WWW::Mechanize 以便能够登录到 Yahoo。系统管理员(我们的老师)安装了 perl 5.8.7,导致安装失败——由于 LWP::UserAgent 无法在 5.8.8 以下的版本上升级自身。

然后我使用 App::perlbrew 在我的主目录中安装了 Perl 5.10.1,并成功安装了 Mech。但是,使用我安装的旧模块(使用 5.8.7)会产生很多兼容性问题。现在我不知道如何卸载所有东西,我只剩下大概 15 兆的磁盘空间。

OpenSSL 已经在系统上,但今天早上我通过从镜像下载压缩包并编译它,在我的主目录中安装了另一个 OpenSSL。显然它似乎是最新版本。

一件事要杀了我。我没有root权限做任何事情。这个项目将于周五到期,所以我想我会放弃这个并做一些根本不涉及 HTTPS 的事情。

我读到我只需要对 openssl-devel 进行 yum 安装,但没有 root 权限我不能这样做。如果有人知道该怎么做,请告诉我。

我会尝试你的建议,强制安装 Net::SSLeay,稍后再告诉你。

现在我尝试将 Mech 安装在其他目录中(远离 5.8.7 的东西),但它失败了......呃......

第 4 次编辑:我强行安装了 Net::SSLeay。这是日志:它不起作用。您对 SSL 库是正确的。

第五次编辑:YAAAAAAAAAAAAAAAAYYYY!老师安装了openssl-devel,现在可以了!!!!!!!!!

0 投票
2 回答
10435 浏览

perl - 使用 Perl 和 Mechanize 登录网站

所以这让我发疯。基本上,当我硬编码我的用户名和密码时,我可以登录没有问题。但是我想提示用户输入用户名和密码,因为我想与其他人分享这个程序。(该程序应该登录到我们的课程网站并下载我们所有的课程工作信息 - 讲座、硬件等)

此代码有效:

但是,当我尝试提示用户输入登录信息时,它现在可以工作了。打印内容返回登录页面的 html,而不是以下页面(该用户的课程页面)

这真的没有意义,因为它们本质上是一样的。我什至在提示中的引号中输入了用户名/密码,但仍然无济于事......(我也意识到如果没有网站和登录信息,检查起来不会很容易,对此感到抱歉)

0 投票
1 回答
1604 浏览

perl - 将机械化浏览器传递给子程序(Perl with WWW::Mechanized)

我仍在学习 Perl,因此对缺乏技术术语知识和一般新手表示歉意。

我正在尝试编写一个脚本来登录我的课程作品帐户并下载所有文件。我只能停留大约一个小时,直到我必须重新登录,所以我想在一个子程序中进行登录工作,这样取决于我可以调用它并重新登录并继续的时间爬行。我的问题是我希望能够在子程序和主代码之间来回传递浏览器(?关于术语,参见下面的示例会更有意义)。

这是我到目前为止所拥有的,但它不起作用:

这表示我不能在$browser -> get($url);. 所以我猜在主代码中初始化浏览器不起作用(因为它没有传递给子程序)是/否?

好的,很酷,然后我尝试在子程序本身中执行以下操作:

这次我收到以下错误消息:“C:/Perl64/lib/HTTP/Response.pm 第 93 行缺少基本参数”

所以,我删除了子程序中的行,直到它工作,并发现它编译时如下所示:

但它显然只是返回垃圾。

我认为问题在于,正如我所说,试图将浏览器对象传递给子例程,因为我不认为它只是一个标量(因为我可以从中获取“内容”之类的东西),但我实际上真的没有把握。我也很困惑,因为当我在子程序中初始化它时,我仍然遇到问题!!!??????我还尝试使 $browser 成为全局变量,但是在两个代码中都出现了相同的错误。显然我在这里遗漏了一些东西。

在此先感谢所有通过它的人,我知道这有点啰嗦,因为可能是一个非常简单的答案,但我缺乏经验。

0 投票
2 回答
394 浏览

perl - WWW::Mechanize: save_content-encoding-question

有没有办法影响save_content()方法的编码WWW::Mechanize

0 投票
1 回答
334 浏览

perl - Perl WWW-机械化模块

我正在使用 www-mechanize 模块来访问网站控件。一些 html 页面包含框架。我无法获取链接名称,也无法访问框架中的链接。请任何人提出正确的解决方案来解决此问题。

工作平台:Windows、Perl

提前致谢

0 投票
1 回答
390 浏览

perl - 需要的建议:使用 Perl 的 web-spider

蜘蛛应该:

  1. 通过发布登录表单登录
  2. 通过 cookie 维护登录状态
  3. 跟随主页中的随机链接

蜘蛛的目的是让新网站保持忙碌,模拟许多用户正在浏览它。

我看过 LWP 和 WWW::Mechanize。不确定应该使用哪个模块,或任何其他更好的建议。如果您有代码示例非常好。

谢谢。

0 投票
5 回答
476 浏览

perl - Perl:网站抓取的意外行为

我正在使用WWW::MechanizeHTML::TokeParser解析网站以获取更新。我无法在网站上提供任何详细信息,因为它需要登录。该网站基本上有一个数据表。我只是解析 html 直到我到达表格的第一行,检查它是否是我最后一次抓取的值,如果没有发送邮件。当我在现有表条目上对其进行测试时,这非常有效,除非发生实际更新时,抓取不会在我最后一次抓取时停止。它一直发送邮件,直到表用完并无限期地重复。我无法弄清楚发生了什么。我知道没有网站,没有多少人可以验证,但无论如何我都会发布我的代码。我会很感激关于可能出错的想法。

代码:

0 投票
1 回答
1147 浏览

perl - 如何使用 Test::WWW::Mechanize::PSGI 测试 Dancer 应用程序?

我不确定为 www mechanize 设置脚本应用程序的正确方法。我确实尝试了至少一种可行的替代方案,但是我正在尝试通过测试传递配置,以便我可以使用测试套件使日志记录更安静。

在脚本上运行do似乎允许测试运行,但日志变量设置不正确,同时似乎有更好的方法来做到这一点。

更新

我想我可能离解决方案越来越近了......

我从Plack PSGI的Dancer::Deployment 文档中获取了这个。但是,我从测试中收到 500 错误。

DBI 错误在这里不相关,但它们是我得到的错误输出的一部分。我不知道为什么它找不到/login/default.tt。我猜它的问题是它不知道我的视图文件夹在哪里,因为有问题的模板在views/login/default.tt. 即使在plackup. 我难住了。