首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将phantom js处理过的页面保存到包含绝对url的html文件中

问将phantom js处理过的页面保存到包含绝对url的html文件中
EN

Stack Overflow用户
提问于 2013-01-28 08:29:29
回答 2查看 3.4K关注 0票数 5

我想保存我的特殊网页后,文件加载到特殊的文件名通过所有的网址和链接转换为绝对网址,如wget -k。

代码语言:javascript
复制
//phantomjs
var page = require('webpage').create();
var url = 'http://google.com/';
page.open(url, function (status) {
var js = page.evaluate(function () {
return document;
});
console.log(js.all[0].outerHTML);
phantom.exit();
});

例如,我的html内容是这样的:

代码语言:javascript
复制
<a href="//page.html">page</a>

必须是

代码语言:javascript
复制
<a href="http://google.com/page.html">page</a>

这是我的示例脚本,但是如何使用phantomjs转换所有的url和链接,比如wget -k?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-23 20:57:44

您可以修改最终的超文本标记语言,使其具有<base>标记-这将使所有相对URL正常工作。在您的示例中,可以尝试将<base href="http://google.com/">放在页面上的<head>后面。

票数 6
EN

Stack Overflow用户

发布于 2013-01-29 14:04:42

它并不是真正被PhantomJS支持的,而不仅仅是一个超文本传输协议客户端。想象一下,如果有一个JavaScript代码,它在主登录页面上随机拉出一个带有图像的内容。

对于您来说,解决方法可能是替换DOM中所有引用的资源,也可能不是。这可以使用一些CSS3选择器(href用于a,src用于img等)和相对于基URL的手动路径解析。如果您确实需要跟踪和登记每个单独的资源URL,请使用network traffic monitoring功能。

最后但并非最不重要的一点是,要获得生成的内容,您可以使用page.content,而不是使用evaluate和outerHTML的复杂舞蹈。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14553925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档