![](/img/trans.png)
[英]Populating a dynamic webpage based on another webpage's data using jquery
[英]Webpage's HTML using Phantom
我正在嘗試使用PhantomJS加載頁面(使用Javascript加載網頁上的項目)並將頁面上的所有HTML(至少在<body />
標記內)返回給執行phantomjs httpget.js
的PHP函數。 。
問題:我可以讓phantomjs返回document.title
,但是讓它返回console.log(document.body)
簡單會給我一個[object Object]
。 如何提取頁面的HTML?
與瀏覽器相比,使用phantomjs加載網頁還需要更長的時間 。
httpget.js
console.log('hello!');
var page = require('webpage').create();
page.open("http://www.asos.com/Men/T-Shirts-Vests/Cat/pgecategory.aspx?cid=7616#parentID=-1&pge=0&pgeSize=900&sort=1",
function(status){
console.log('Page title is ' + page.evaluate(function () {
return document.body;
}));
phantom.exit();
});
輸出 (從外殼運行)
hello!
Page title is [object Object]
document.body.innerHTML
包含正文的HTML。
由於您似乎直接使用PhantomJS,而不是節點(或通過node-phantom進行幻像),因此不確定與Node.js有什么關系...
但是要回答您的問題,您需要這樣做:
var html = page.evaluate(function () {
var root = document.getElementsByTagName("html")[0];
var html = root ? root.outerHTML : document.body.innerHTML;
return html
});
這適用於沒有外部<html>標記的頁面。
閱讀文檔page.content
可以獲取整個HTML。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.