我想保存我的特殊网页后,文件加载到特殊的文件名通过所有的网址和链接转换为绝对网址,如wget -k。
//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内容是这样的:
<a href="//page.html">page</a>必须是
<a href="http://google.com/page.html">page</a>这是我的示例脚本,但是如何使用phantomjs转换所有的url和链接,比如wget -k?
发布于 2013-04-23 20:57:44
您可以修改最终的超文本标记语言,使其具有<base>标记-这将使所有相对URL正常工作。在您的示例中,可以尝试将<base href="http://google.com/">放在页面上的<head>后面。
发布于 2013-01-29 14:04:42
它并不是真正被PhantomJS支持的,而不仅仅是一个超文本传输协议客户端。想象一下,如果有一个JavaScript代码,它在主登录页面上随机拉出一个带有图像的内容。
对于您来说,解决方法可能是替换DOM中所有引用的资源,也可能不是。这可以使用一些CSS3选择器(href用于a,src用于img等)和相对于基URL的手动路径解析。如果您确实需要跟踪和登记每个单独的资源URL,请使用network traffic monitoring功能。
最后但并非最不重要的一点是,要获得生成的内容,您可以使用page.content,而不是使用evaluate和outerHTML的复杂舞蹈。
https://stackoverflow.com/questions/14553925
复制相似问题