我使用以下脚本来获取“chart_anchor”元素的outerHTML。
var page = require('webpage').create();
var system = require('system'), address, myid;
if (system.args.length != 3)
{
console.log('Usage: ' + system.args[0] + ' <some URL> <ElementId>');
phantom.exit();
}
address = system.args[1];
myid = system.args[2];
page.open(address, function(status) {
console.log("Status: " + status + " " + address);
if(status === "success") {
var html = page.evaluate(function(elemid){
return document.getElementById(elemid).outerHTML; // "chart-section"
}, myid);
page.render('example.png');
console.log(html);
}
phantom.exit();
});
以下命令用于获取节点的outerHTML,但输出与chrome中的“Inspect Element”不同。有些专家可以帮助我得到相同的结果吗? 非常感谢。
./ phantomjs l2.js“http://www.google.com/finance?chdnp=1&chdd=1&chds=1&chdv=1&chvs=maximized&chdeh=0&chfdeh=0&chdet=1423200847674&chddm=1172.9999999999998&chls=IntervalBasedLine&q=NASDAQ%3AC&ntsp=0&fct=big&ei=TlLUVJnyAdDlqAG7r4H4Dg”chart_anchor
来自phantomjs的结果
<div id="chart_anchor" class="id-chart_anchor"><div id="image_chart"><table><tbody><tr><td class="itxt" align="left"><span class="linkbtn" onclick="_changeImage && _changeImage('1d',60, 1);">1d</span> <span class="linkbtn"
...更多
来自chrome的
<div id="chart_anchor" class="id-chart_anchor"><embed src="/finance/s/Med12Cbcdb8/chart9.swf?hl=en&gl=us" width="100%" height="340" type="application/x-shockwave-flash" menu="false" name="chartElement" id="chartElement" wmode="opaque" flashvars="lcId=142323
......更多
我还没有让它工作,但以下链接似乎非常相关。 http://www.ryanbridges.org/2013/05/21/putting-the-flash-back-in-phantomjs/
答案 0 :(得分:0)
结合以下页面中的说明,phantomjs输出与Chrome相同的outerHTML。 http://blog.webogroup.com/2013/04/how-to-setup-completely-headless.html
yum install -y xorg-x11-server-Xvfb xorg-x11-server-Xorg xorg-x11-fonts* dbus-x11 xulrunner.x86_64 nspr.x86_64 nss.x86_64
yum install -y libcurl
yum localinstall flash-player-plugin-11.2.202.442-1.mga5.nonfree.x86_64.rpmfind
yum localinstall nspluginwrapper-1.4.4-1.el6_3.i686.rpm