使用PhantomJS从wikimapia.org捕获地图会导致分析错误

Capturing map from wikimapia.org with PhantomJS results in Parse Error

本文关键字:错误 地图 PhantomJS wikimapia org 使用      更新时间:2023-09-26

我读过一些关于这个主题的帖子,但它们并不是很适合我的需求。这就是我问的原因。我使用的是安装了phantomjs的linux。

我有一个wikimapia.org(类似于谷歌地图的地图网站)。我想用phantomjs打开url "http://wikimapia.org/#lang=en&lat=13.34674&lon=74.748418&z=18&m=m"。所以我尝试了以下代码test.js

var page = require('webpage').create();
page.open("http://wikimapia.org/#lang=en&lat=13.34674&lon=74.748418&z=18&m=m", function(){
    setTimeout(function () {
        console.log(page.content);
        page.render("screen.png");
    }, 5000);
});

然后我运行:phantomjs test.js它还生成了screen.png,既没有显示所需的地图,也没有显示加载图标。还有一个错误显示:

SyntaxError:分析错误TypeError:"undefined"不是对象(正在计算"ns.Utils")

当前的PhantomJS(1.9.7)是QtWebkit的旧分叉,可与Chrome 13或Safari 5相媲美。这意味着某些脚本无法使用它进行评估。

特别是,脚本http://wikimapia.org/js/application.js?601无法分析。这是主要的应用程序,所以完整的地图不起作用。

您可以使用SlimerJS,它具有与PhantomJS相同的API,但使用Gecko(Firefox)引擎。我试过了,它的超时时间更高(30秒)。

由于地图的显示和渲染方式,保存计算源不会在脱机模式下获得实际保存的页面。你能做的最好的事情就是用page.render截屏。