我正在使用 PhantomJS 来检索此页面:Target Page Link。我需要的内容在“行政公告”和“大学征才公告”标签下。由于本页面为中文,如果您找不到标签,您可以使用浏览器的“查找”功能找到“行政公告”和“大学征才公告”标签。因为“行政公告”选项卡下的内容是默认加载的,所以我可以很容易地使用下面的脚本来检索页面:
var page = require('webpage').create();
var url = 'http://sa.ttu.edu.tw/bin/home.php';
page.open(url, function (status) {
var js = page.evaluate(function () {
return document;
});
console.log(js.all[0].outerHTML);
phantom.exit();
});
但是我用PhamtomJS模拟鼠标点击后,“大学征才公告”标签下的内容没有加载,代码如下:
var page = require('webpage').create();
var url = 'http://sa.ttu.edu.tw/bin/home.php';
page.open(url, function (status) {
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
// jQuery is loaded, now manipulate the DOM
$('#sm_adf63b93c89375a0bade42e5360b73274_1_Dyn_2_1').trigger('mouseover');
});
var js = page.evaluate(function () {
return document;
});
console.log(js.all[0].outerHTML);
phantom.exit();
});
这不起作用,因为“大学征才公告”选项卡下的内容没有加载。如何找回“大学征才公告”栏目下的内容?
更新:
在阅读了PhantomJS 示例后,我将代码重构为以下内容。没有加载“大学征才公告”栏目下的内容。
var page = require('webpage').create();
var address = 'http://sa.ttu.edu.tw/bin/home.php';
page.open(address, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
window.setTimeout(function () {
var results = page.evaluate(function() {
$('#sm_adf63b93c89375a0bade42e5360b73274_1_Dyn_2_1').trigger('mouseover');
return document.documentElement.innerHTML;
});
console.log(results);
phantom.exit();
}, 5000);
}
});
如果有任何方法可以解决这个问题,欢迎。不限于 PhamtoJS。