问题标签 [mozrepl]

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

perl - 使用 MozRepl 和 Mechanize::Firefox 获取渲染的 HTML

我刚刚被介绍了 MozRepl 与 Perl 的 WWW::Mechanize::Firefox 结合使用的奇迹,并试图弄清楚如何使用它来爬取 GWT 页面(例如: https: //www.google. com/offers/home#!details/4bc7fd6bd3feb311/XYW81TXGLA88TR42

我真正想要的是呈现的 html,而不是实际的 html。真的很感激我如何得到这个的例子。

0 投票
1 回答
1908 浏览

perl - 使用 MozRepl 设置无头 Firefox

我想运行一个可以在没有 X 服务器的环境中处理 javascript 创建的 html 的爬虫。我知道我可以在 xvfb 下以无头状态运行 Firefox,并且我知道如何在 Firefox 上安装 MozRepl 并在我拥有实际浏览器并可以下载和设置模块时使用 WWW::Mechanize 与之交互。

我不知道如何在没有 X 服务器的环境中在 Firefox 上设置 MozRepl,以便我轻松安装模块。任何帮助表示赞赏。

0 投票
1 回答
2973 浏览

javascript - 如何在 Javascript 对象中使用 Unicode 字符串键?

我想在 Object 中使用 unicode 字符串作为键,例如:

没关系,t["姓名"]返回"naitong"

我得到了“”,一个空白字符串

有谁知道为什么?

编辑:

我安装了萤火虫并在控制台中尝试,它可以工作。实际上我使用 mozrepl,这样我就可以在 emacs 中编辑和运行 javascript。所以这与mozrepl有关

我已经确认 mozrepl 仅支持“7bit 安全 ASCII”,要转换 unicode,我必须在 emacs 中对其进行 json 编码,如:

这是我在 stackoverflow 上提出的第一个问题,我得到了快速响应。谢谢你们。

0 投票
1 回答
299 浏览

perl - 使用 Mozrepl 使用 WWW::Mechanize::FireFox 创建缩略图 - 一些调试尝试

好吧,我运行这个脚本,它是为了做一些网站的截图而写的,我也启动并运行 mozrepl

在这里,我们有一些请求的 url 的文件......注意这只是真实列表的一小段 - 真实列表要长得多。它包含超过 3500 行和 URL

奇怪的是输出 - 见下文......问题:我应该更改脚本吗

为什么我要使用以下小脚本获取输出:

在这里看到压倒性的输出 - 坦率地说,我从来没有想过得到如此有趣的输出..我必须调试整个代码....见下文,

一些思考:嗯 - 首先,我认为这不是一个非常严重的错误 - 我认为我必须调试它,然后它会更好地工作。其次,我首先认为脚本似乎“使机器过载”?现在我对此不太确定:症状确实看起来很奇怪,但我想没有必要得出“机器过载”的结论

第三,我认为必须采取某些步骤来确保问题与 WWW::Mechanize::Firefox 完全相关?这让我明白 Perl 警告的含义以及使用诊断编译指示获得更多解释的想法:你怎么看?

首先- 我们需要进行 open()、sysopen() 或 so +cket() 调用,或者从 FileHandle 包中调用构造函数 - 或者,关闭文件句柄 OUTPUT 上的 print() 也会给出很多答案这将告诉我们,我们没有使用 autodie,也没有检查 open 的返回值。最重要的是我必须调试它并确保找到错误发生的地方[/QUOTE]

但经过一番思考后,我认为值得仔细研究所有测试的东西——你怎么看这个想法总是在使用之前测试以确保文件是打开的。这意味着我们也应该进入使用三个的习惯

好吧 - 我想我们可以或应该在不使用的情况下解决这个问题die(),但我们必须手动使用一些方法让我们知道哪些文件无法创建。在我们的例子中,它们看起来都......上面显示的......

更新选择一个好的文件名意味着我需要一个文件名来存储图像。注意:我想将它们全部存储在本地。但是,如果我有一个巨大的 url 列表,那么我会得到一个巨大的输出文件列表。因此我需要有好的文件名。我们可以在节目中反映这些东西和需求吗!?

最新的更新;机械化似乎有一些错误....我想是的!

0 投票
1 回答
2169 浏览

perl - WWW:Mechanize:Firefox 连接失败

我正在创建一个简短的 Perl 脚本。我正在使用该WWW::Mechanize::Firefox模块。当我实例化该对象时,我认为该模块无法与 Firefox 中的 MozRepl 组件建立连接。

我的代码如下:

当我运行代码时,我收到以下错误消息

我刚刚安装并更新了我能想到的所有相关软件

  1. Perl 5.12.4
  2. Firefox 的 MozRepl 扩展
  3. CPAN
  4. MozRepl
  5. 万维网::机械化
  6. 万维网::机械化::火狐

我尝试调整防火墙以打开端口 4242。没有任何效果。有任何想法吗?

这个 Stack Overflow 问题中出现了类似的错误代码


更新

好的,鲍罗丁的回答实际上解决了 2 个问题。

WWW::Mechanize::Firefox->new() 仅在

  1. Firefox 浏览器已经打开,并且
  2. 启动 Firefox 后,您按照 Borodin 的说明启动 MozRepl

我曾期望 Perl 脚本像 shell 脚本一样运行,并为我启动 Firefox。不是这种情况。

此外,如果您在 Firefox 中隐藏菜单栏,“工具”菜单是唯一无法在左上角的下拉列表中访问的菜单。您必须显示菜单栏才能访问“工具”菜单。

0 投票
3 回答
2037 浏览

javascript - 以编程方式打开 Firefox 并执行 POST 请求?[想法:MozRepl,建议?]

在我的应用程序中,我需要一个按钮来打开 Firefox(如果尚未打开),执行包括文件上传在内的 POST 请求,并向用户显示结果页面(以便进一步导航)。

从我到目前为止的发现来看,这似乎需要使用像 MozRepl 或 JSSH 这样的 Firefox 扩展,所以我可以通过 Telnet 或 SSH 从我的应用程序连接到该进程。还有其他方法吗?我愿意接受好的建议...

然后我需要使用 content.XMLHttpRequest 来创建一个 POST 请求:

但是 [...] 会带来什么?不知何故,有一个从本地表单构建的 File 对象;但是我怎样才能自己实例化和填充一个呢?以及如何让页面结果显示在 Firefox 中?

我可以将一个临时文件写入磁盘并从那里读取它,或者直接通过 Javascript/MozRepl 写入文件内容,两者都对我来说是可以接受的(但 1)可能不适用于 Javascript)。

在此先感谢,-M。

0 投票
1 回答
470 浏览

perl - WWW::Mechanize::Firefox 疑难解答

我在浏览器中安装了 MozRepl,并设置为在启动时启动并接受外部连接。

所以我的问题如下 1)将简单地运行代码my $mech = WWW::Mechanize::Firefox->new();启动Firefox浏览器?

2) 我已将 MozRepl 设置为接受外部连接,但是,当 firefox 未启动时,当我的脚本到达 1) 中的代码时,它会告诉我unable to connect, problem connecting to localhost, on port 4242。我尝试通过telnet localhost 4242未启动的Firefox浏览器进行调试。它也给了我这个错误Could not open connection to the host, on port 4242: Connect failed

我应该期待这个结果吗?

3) 鉴于我在上面遇到的困难,我决定在创建 mechanize::firefox 实例之前使用 system() 来启动浏览器。浏览器能够启动,但是它永远不会到达要创建 mechanize::firefox 实例的代码。

我该怎么做才能确保可以启动 firefox 浏览器但它不会影响代码的顺序,以便可以创建 mechanize::firefox 实例来操作浏览器?

0 投票
1 回答
379 浏览

javascript - 启动 Firefox、使用特权 nsI* API 驱动第 3 方站点的最简单方法

启动 Firefox、加载第 3 方网站(我被授权“自动化”)并针对该网站运行一些“特权”API 的最简单方法是什么?(例如:nsIProgressListener、nsIWindowMediator 等)。

我尝试了两种方法:

  1. 使用 XULrunner 创建一个选项卡式浏览器,“探测”第 3 方站点打开新窗口、遵循 302 重定向等所需的所有适当 API。这样做会产生大量代码,并且需要(afaict)用户安装应用程序,或使用 -app 运行 Firefox。它也非常脆弱。:-/

  2. 启动 Firefox 传递第 3 方站点的 URL,MozRepl 已经在监听。然后在启动后不久,从“启动”脚本远程登录到 MozRepl,使用 mozIJSSubScriptLoader::loadSubScript 加载我的代码,然后在 3rd 方站点的上下文中从 MozRepl 执行我的代码 -这是我目前正在做的方式它

使用第一种方法,我遇到了很多安全问题(显然)要解决,而且似乎我编写的浏览器“管道”代码比自动化代码多 10 倍。

使用第二种方法,我看到了很多“时间问题”,即:

  • MozRepl(或执行我提供的特权代码)以某种方式阻止了第 3 方站点的加载???,或
  • 3rd 方站点加载,但 MozRepl 执行的代码没有看到它加载,或者
  • 3rd 方站点加载,并且 MozRepl 还没有准备好接受请求(尽管页面中运行了其他 JavaScript,并且端口 4242 被 Firefox 进程绑定),
  • 等等

我想也许做这样的事情:

以某种方式修改 MozRepl 源,以便在启动时从文件系统中可预测的位置加载特权 JavaScript(或与 Firefox 命令行参数交互)并在第 3 方网站的上下文中执行它。

...甚至编写另一个更专注于该任务的类似附加组件。

有更简单的想法吗?


更新:

经过大量的反复试验,回答了我自己的问题(如下)。

0 投票
3 回答
737 浏览

ajax - 将页面中的多个项目刮成整齐的行

举个例子:

我从 .txt 加载输入:

本杰明,Schuvlein,德国,1912,M,White

我做了一些代码,为了简洁起见,我不会在这里发布并访问链接:

https://familysearch.org/pal:/MM9.1.1/K3BN-LLJ

  1. 我想从该页面上抓取多个内容。在下面的代码中,我只做 1。
  2. 我还想让每个项目在输出 .txt 中用 , 分隔。
  3. 而且,我希望输出之前是输入。

我在代码中使用了以下包:

以下是相关代码:

所需的输出(来自该链接)类似于:

Benjamin,Schuvlein,德国,1912,M,White,Queens,New York,Married,Same Place,Head,等等......

(该输出部分中有多少是可抓取的?)

任何有关如何在链接中获取链接的帮助将不胜感激!

0 投票
3 回答
246 浏览

ajax - Perl - 将输入中的变量分成两个用于url

我正在从 .txt 加载数据以进行抓取。但是,URL 要求我分解该变量并对其执行 +/- 2。例如,如果值为 2342,我需要为 URL 创建 2340 和 2344。

我猜测如何分解它:

然后如何将其放入 URL 中?

这是代码的相关部分:

例如

输入是:

所需的网址是:

https://familysearch.org/search/collection/index#count=20&query=%2Bgivenname%3ABenjamin%20%2Bsurname%3ASchuvlein%20%2Bbirth_place%3AGermany%20%2Bbirth_year%3A1910-1914~%20%2Bgender%3AM% 20%2Brace%3AWhite&collection_id=2000219