簡體   English   中英

使用Phantom的網頁HTML

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM