【发布时间】:2013-12-12 19:22:09
【问题描述】:
我想评估本网站上的 javascript 链接:
例如,我有这个元素:
<li class="language">
<a id="ctl00_btnLang" href="javascript:__doPostBack('ctl00$btnLang','')">English </a>
<img src="/CSS/images/langArwEn.gif" alt="Language Arrow" /></li>
所以,我尝试使用 phantomjs 来评估它,使用 this code:
var page = require('webpage').create();
var fs = require('fs'),
system = require('system');
page.open('http://www.egypt.gov.eg', function (status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
var p = page.evaluate(function () {
return document.getElementsByID('html')[0].innerHTML
});
fs.write('out.htm', p, 'w');
console.log(p);
}
phantom.exit();
});
但它不会评估 html,它只是按原样返回它。那么有没有办法使用 phantomjs 评估整个页面的 html,有没有办法挑选出需要一个一个评估的 javascript 元素?
【问题讨论】:
-
我不太明白你的目的。你的意思是自动执行
__doPostBack然后抓取页面? -
是的,这就是我基本需要的
-
一般来说,如果我在href中找到一段javascript,如何处理它以检索它指向的页面?
-
直接在page.evaluate中调用脚本即可。如果您只需要获取网站的英文版,您可以直接访问此网址:egypt.gov.eg/english/home.aspx
-
查看
phantomjs cross-domain request?
标签: javascript html phantomjs