网页's使用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();
});
输出(从shell运行)
hello!
Page title is [object Object]
document.body.innerHTML
包含正文的HTML。
不确定这与Node.js有什么关系,因为您似乎直接使用PhantomJS,而不是节点(或通过节点phantom使用phantom)。。。
但要回答你的问题,你需要这样做:
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。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何设置html元素填充的动画
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何编写HTML输入的JS内联
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量
- 如何使Javascript动态html表及其上的事件
- 在chrome.tabs.onCreated之后加载HTML页面
- 如何在vs2002中调试html页面
- 如何使用javascript或html下载PDF格式的填写表单
- 视频HTML没有'无法在Internet Explorer 11上工作
- HTML表单提交时未执行外部函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 使用angular重定向到html页面
- 网页's使用Phantom的HTML
- 使用Phantom.js评估,我如何才能得到页面的HTML
- 在不使用JSPDF、Phantom等的情况下,是否有可能在AngularJs中导出HTML为PDF或生成PDF ?
- 在phantom-html2pdf中从html转换时,图像不显示在PDF中