Node.js:代理网站如何处理相对网址?

时间:2011-09-23 06:00:09

标签: node.js proxy screen-scraping relative-path

我在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(); 

  });
});

1 个答案:

答案 0 :(得分:0)

现在你的代码只代理html文件,客户端直接从真实站点抓取其余部分。您将希望使用类似于节点jQuery的东西来替换文档中的所有src / href以使它们通过您的代理,同时您可以检查它们是否相对以及它们是否在前面添加当前URL然后创建您的代理URL。

相关问题