phantomjs从chrome Inspect Element获得不同的outerHTML

时间:2015-02-06 16:29:01

标签: javascript phantomjs

我使用以下脚本来获取“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 &amp;&amp; _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&amp;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/

1 个答案:

答案 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