繁体   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