问题标签 [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.
perl - 使用 MozRepl 和 Mechanize::Firefox 获取渲染的 HTML
我刚刚被介绍了 MozRepl 与 Perl 的 WWW::Mechanize::Firefox 结合使用的奇迹,并试图弄清楚如何使用它来爬取 GWT 页面(例如: https: //www.google. com/offers/home#!details/4bc7fd6bd3feb311/XYW81TXGLA88TR42)
我真正想要的是呈现的 html,而不是实际的 html。真的很感激我如何得到这个的例子。
perl - 使用 MozRepl 设置无头 Firefox
我想运行一个可以在没有 X 服务器的环境中处理 javascript 创建的 html 的爬虫。我知道我可以在 xvfb 下以无头状态运行 Firefox,并且我知道如何在 Firefox 上安装 MozRepl 并在我拥有实际浏览器并可以下载和设置模块时使用 WWW::Mechanize 与之交互。
我不知道如何在没有 X 服务器的环境中在 Firefox 上设置 MozRepl,以便我轻松安装模块。任何帮助表示赞赏。
javascript - 如何在 Javascript 对象中使用 Unicode 字符串键?
我想在 Object 中使用 unicode 字符串作为键,例如:
没关系,t["姓名"]返回"naitong"
但
我得到了“”,一个空白字符串
有谁知道为什么?
编辑:
我安装了萤火虫并在控制台中尝试,它可以工作。实际上我使用 mozrepl,这样我就可以在 emacs 中编辑和运行 javascript。所以这与mozrepl有关
我已经确认 mozrepl 仅支持“7bit 安全 ASCII”,要转换 unicode,我必须在 emacs 中对其进行 json 编码,如:
这是我在 stackoverflow 上提出的第一个问题,我得到了快速响应。谢谢你们。
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 列表,那么我会得到一个巨大的输出文件列表。因此我需要有好的文件名。我们可以在节目中反映这些东西和需求吗!?
最新的更新;机械化似乎有一些错误....我想是的!
perl - WWW:Mechanize:Firefox 连接失败
我正在创建一个简短的 Perl 脚本。我正在使用该WWW::Mechanize::Firefox
模块。当我实例化该对象时,我认为该模块无法与 Firefox 中的 MozRepl 组件建立连接。
我的代码如下:
当我运行代码时,我收到以下错误消息
我刚刚安装并更新了我能想到的所有相关软件
- Perl 5.12.4
- Firefox 的 MozRepl 扩展
- CPAN
- MozRepl
- 万维网::机械化
- 万维网::机械化::火狐
我尝试调整防火墙以打开端口 4242。没有任何效果。有任何想法吗?
这个 Stack Overflow 问题中出现了类似的错误代码
更新
好的,鲍罗丁的回答实际上解决了 2 个问题。
WWW::Mechanize::Firefox->new() 仅在
- Firefox 浏览器已经打开,并且
- 启动 Firefox 后,您按照 Borodin 的说明启动 MozRepl
我曾期望 Perl 脚本像 shell 脚本一样运行,并为我启动 Firefox。不是这种情况。
此外,如果您在 Firefox 中隐藏菜单栏,“工具”菜单是唯一无法在左上角的下拉列表中访问的菜单。您必须显示菜单栏才能访问“工具”菜单。
javascript - 以编程方式打开 Firefox 并执行 POST 请求?[想法:MozRepl,建议?]
在我的应用程序中,我需要一个按钮来打开 Firefox(如果尚未打开),执行包括文件上传在内的 POST 请求,并向用户显示结果页面(以便进一步导航)。
从我到目前为止的发现来看,这似乎需要使用像 MozRepl 或 JSSH 这样的 Firefox 扩展,所以我可以通过 Telnet 或 SSH 从我的应用程序连接到该进程。还有其他方法吗?我愿意接受好的建议...
然后我需要使用 content.XMLHttpRequest 来创建一个 POST 请求:
但是 [...] 会带来什么?不知何故,有一个从本地表单构建的 File 对象;但是我怎样才能自己实例化和填充一个呢?以及如何让页面结果显示在 Firefox 中?
我可以将一个临时文件写入磁盘并从那里读取它,或者直接通过 Javascript/MozRepl 写入文件内容,两者都对我来说是可以接受的(但 1)可能不适用于 Javascript)。
在此先感谢,-M。
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 实例来操作浏览器?
javascript - 启动 Firefox、使用特权 nsI* API 驱动第 3 方站点的最简单方法
启动 Firefox、加载第 3 方网站(我被授权“自动化”)并针对该网站运行一些“特权”API 的最简单方法是什么?(例如:nsIProgressListener、nsIWindowMediator 等)。
我尝试了两种方法:
使用 XULrunner 创建一个选项卡式浏览器,“探测”第 3 方站点打开新窗口、遵循 302 重定向等所需的所有适当 API。这样做会产生大量代码,并且需要(afaict)用户安装应用程序,或使用 -app 运行 Firefox。它也非常脆弱。:-/
启动 Firefox 传递第 3 方站点的 URL,MozRepl 已经在监听。然后在启动后不久,从“启动”脚本远程登录到 MozRepl,使用 mozIJSSubScriptLoader::loadSubScript 加载我的代码,然后在 3rd 方站点的上下文中从 MozRepl 执行我的代码 -这是我目前正在做的方式它。
使用第一种方法,我遇到了很多安全问题(显然)要解决,而且似乎我编写的浏览器“管道”代码比自动化代码多 10 倍。
使用第二种方法,我看到了很多“时间问题”,即:
- MozRepl(或执行我提供的特权代码)以某种方式阻止了第 3 方站点的加载???,或
- 3rd 方站点加载,但 MozRepl 执行的代码没有看到它加载,或者
- 3rd 方站点加载,并且 MozRepl 还没有准备好接受请求(尽管页面中运行了其他 JavaScript,并且端口 4242 被 Firefox 进程绑定),
- 等等
我想也许做这样的事情:
以某种方式修改 MozRepl 源,以便在启动时从文件系统中可预测的位置加载特权 JavaScript(或与 Firefox 命令行参数交互)并在第 3 方网站的上下文中执行它。
...甚至编写另一个更专注于该任务的类似附加组件。
有更简单的想法吗?
更新:
经过大量的反复试验,回答了我自己的问题(如下)。
ajax - 将页面中的多个项目刮成整齐的行
举个例子:
我从 .txt 加载输入:
本杰明,Schuvlein,德国,1912,M,White
我做了一些代码,为了简洁起见,我不会在这里发布并访问链接:
https://familysearch.org/pal:/MM9.1.1/K3BN-LLJ
- 我想从该页面上抓取多个内容。在下面的代码中,我只做 1。
- 我还想让每个项目在输出 .txt 中用 , 分隔。
- 而且,我希望输出之前是输入。
我在代码中使用了以下包:
以下是相关代码:
所需的输出(来自该链接)类似于:
Benjamin,Schuvlein,德国,1912,M,White,Queens,New York,Married,Same Place,Head,等等......
(该输出部分中有多少是可抓取的?)
任何有关如何在链接中获取链接的帮助将不胜感激!
ajax - Perl - 将输入中的变量分成两个用于url
我正在从 .txt 加载数据以进行抓取。但是,URL 要求我分解该变量并对其执行 +/- 2。例如,如果值为 2342,我需要为 URL 创建 2340 和 2344。
我猜测如何分解它:
然后如何将其放入 URL 中?
这是代码的相关部分:
例如
输入是:
所需的网址是: