我刚刚介绍了与Perl的WWW :: Mechanize :: Firefox一起使用的MozRepl的奇迹,并试图弄清楚如何使用它来抓取GWT页面(例如:https://www.google. com/offers/home#!details/4bc7fd6bd3feb311/XYW81TXGLA88TR42)
我真正想要的是渲染的html,而不是实际的html.真的很感激我会如何得到这个.
我想在Object中使用unicode字符串作为键,如下所示:
var t = {"??": "naitong"};
Run Code Online (Sandbox Code Playgroud)
没关系,t ["姓名"]返回"naitong"
但
Object.keys({"??": "naitong"})
Run Code Online (Sandbox Code Playgroud)
我得到了一个空白的字符串
有谁知道为什么?
EDITTING:
我安装了firebug并在控制台中尝试它,它的工作原理.实际上我使用mozrepl,以便我可以在emacs中编辑和运行javascript.所以这与mozrepl有关
我已经确认mozrepl仅支持"7bit安全ASCII",要转换unicode,我必须在emacs中对其进行json编码,如下所示:
alert(Object.keys(JSON.parse("{\"\\u59d3\\u540d\":\"naitong\"}")))
Run Code Online (Sandbox Code Playgroud)
这是我在stackoverflow上提出的第一个问题,我快速得到了回复.谢谢你们.
我想运行一个爬虫,可以在没有X服务器的环境中处理javascript创建的html.我知道我可以在xvfb下以无头状态运行Firefox,我知道如何在Firefox上安装MozRepl并使用WWW :: Mechanize与它进行交互,当我有实际的浏览器并可以下载和设置模块时.
我不知道该怎么办是在我没有X服务器的环境中在Firefox上设置MozRepl,以便我安装模块.任何帮助表示赞赏.
我知道当我进入 mozrepl 会话时,我处于一个特定浏览器窗口的上下文中。在那个窗口我可以做
var tabContainer = window.getBrowser().tabContainer;
var tabs = tabContainer.childNodes;
Run Code Online (Sandbox Code Playgroud)
这将为我提供该窗口中的一系列选项卡。我需要获取所有打开的 Firefox 窗口中所有选项卡的数组,我该怎么做?
如何以编程方式从 Linux 中的外部进程获取当前的 chromium 选项卡 URL?
类似的问题还有很多,但我没有找到符合以下要求的问题
在 Firefox 中,有mozrepl,它通过 TCP 端口上的交互式 repl 公开浏览器内部结构。我正在寻找 chromium 或 chrome 中类似的东西,即使这意味着安装 chrome 扩展。
我正在创建一个简短的Perl脚本.我正在使用该WWW::Mechanize::Firefox模块.当我实例化对象时,我相信模块无法与Firefox中的MozRepl组件建立连接.
我的代码如下:
use WWW::Mechanize::Firefox;
my $mech = WWW::Mechanize::Firefox->new();
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我收到以下错误消息
Failed to connect to , problem connecting to "localhost", port 4242: Connection refused at /usr/local/share/perl/5.12.4/MoxRepl/Client.pm line 144'
Run Code Online (Sandbox Code Playgroud)
我刚刚安装并更新了我能想到的所有相关软件
我尝试调整防火墙以打开端口4242.没有什么工作.有任何想法吗?
此Stack Overflow问题中出现类似的错误代码
更新
好吧,鲍罗丁的答案实际上解决了2个问题.
WWW :: Mechanize :: Firefox-> new()仅适用于
我曾期望Perl脚本像shell脚本一样,并为我启动Firefox.不是这种情况.
此外,如果您在Firefox中隐藏菜单栏,则"工具"菜单是唯一一个在左上角显示的下拉列表中无法访问的菜单.您必须显示菜单栏才能访问"工具"菜单.