0
我是Phantomjs的初學者,所以很多問題我都無法解決。你介意幫我解決這個問題嗎?我有關於通過Phantomjs獲取多個動態網址的問題。如何獲得多鏈接並在Phantomjs中關注這些鏈接?
實施例:
- 我的index.html是:
<!DOCTYPE html>
<html>
<body>
<h1>Homepage</h1>
<ul>
<li><a href="laptop.html">Laptop</a></li>
<li><a href="tablet.html">Tablet</a></li>
</ul>
</body>
</html>
- 我laptop.html文件(文件tablet.html作爲相同)爲:
<!DOCTYPE html>
<html>
<body>
<h1>Laptop Page</h1>
<div class="productRow">Product of Laptop 1</div>
<div class="productRow">Product of Laptop 2</div>
</body>
</html>
我想這樣打印:
Category Name: Laptop
Product: Product of Laptop 1
Product: Product of Laptop 2
....
Category Name: Tablet
Product: Product of Tablet 1
Product: Product of Tablet 2
...
這意味着我想要得到這個網址的內容http://abc.com/test/。然後我會得到(UL LI A HREF)的鏈接。然後我會按照這些鏈接自動獲取他們的子頁面內容。
這是我的示例代碼由Phantomjs:
var page = require('webpage').create();
var url = 'http://localhost/test';
page.open(url, function() {
//Get parent link
var parent = page.evaluate(function() {
var test = document.querySelectorAll('li a');
return Array.prototype.map.call(test, function(elem) {
return elem.href;
});
});
for(var i=0; i < parent.length; i++){
//Print parent link
console.log("Parent link:" + parent[i]);
//Then open child link
page.open(parent[i],function(){
//console.log(document.title);
var child = page.evaluate(function() {
var test = document.querySelectorAll('div.productRow');
return Array.prototype.map.call(test, function(elem) {
return elem.innerHTML;
});
});
console.log(child.length);
phantom.exit();
});
}
});
爲什麼是執行console.log(child.length)= 0?你可以幫我嗎?謝謝你的幫助。
你的python代碼在哪裏? –