我在 Node 中创建了一个相对简单的代理,它允许我下载页面并显示它们。这很好,尽管一些脚本、链接、表单和图像似乎已损坏,因为它们指向相关文件。作为一个项目,我正在尝试创建一个功能齐全的 Web 代理。
Proxify 等网站如何解决这个问题吗?
引用方案:
var app = require('express').createServer();
var request = require('request'),
sys = require('sys'),
fs=require('fs');
app.get('/url', function(req, res){
console.log(req.query.link);
request({ uri: req.query.link,
headers: {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0"}
}, function (error, response, body) {
if (error && response.statusCode !== 200) {
console.log('Error when contacting google.com')
}
res.send(body, {"Content-type": "text/html"});
res.end();
});
});
最佳答案
现在您的代码仅代理 html 文件,客户端直接从真实站点获取其余部分。您将需要使用类似 Node jQuery 的东西来替换文档中的所有 src/href 以使它们通过您的代理,同时您可以检查它们是否是相对的以及它们是否前置当前 url然后创建您的代理网址。
关于Node.js:代理站点如何处理相对 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524871/