2011-05-06 3 views
1

나는 웹에서 무언가를 얻기 위해 wget을 사용하고 있습니다. 그러나 페이지의 일부를 따르고 싶지 않습니다. wget으로 반환하기 전에 웹 페이지 부분을 제거 할 프록시를 설정할 수 있다고 생각했지만 어떻게 처리 할 것인지 잘 모르겠습니다.http 응답을 클라이언트에 보내기 전에 수정할 수있는 http-proxy를 만듭니다.

파이썬이나 node.js에서 http 응답을 쉽게 수정할 수있는 프록시가 있습니까?

+0

자세한 정보가 필요하다고 생각합니다. 당신은 실제로 무엇을하려고합니까? 수정 한 후 응답으로 무엇을하고 싶습니까? 응답에 대해 무엇을 바꾸고 싶습니까? 헤더를 수정 하시겠습니까? 아니면 데이터? – Acorn

+0

@Acorn - 프록시 단계에서 해당 데이터를 변경하고 싶습니다. '인터넷 -> 프록시 -> wget' –

답변

5

이 목표를 달성하는 데는 여러 가지 방법이 있습니다. 이렇게하면 node.js를 사용하여 시작할 수 있습니다. 다음 예제에서는 google.com을 가져 와서 "google"의 모든 인스턴스를 "foobar"로 복제합니다.

// package.json file... 
{ 
    "name": "proxy-example", 
    "description": "a simple example of modifying response using a proxy", 
    "version": "0.0.1", 
    "dependencies": { 
    "request": "1.9.5" 
    } 
} 

// server.js file... 
var http = require("http") 
var request = require("request") 
var port = process.env.PORT || 8001 

http.createServer(function(req, rsp){ 
    var options = { uri: "http://google.com" } 

    request(options, function(err, response, body){ 
    rsp.writeHead(200) 
    rsp.end(body.replace(/google/g, "foobar")) 
    }) 

}).listen(port) 

console.log("listening on port " + port) 
+0

고마워, 정말 도움이되었습니다. :) –

0

nodejs에서 나는 node-http-proxy을 포크하고 내 필요에 맞게 코드를 사용자 정의합니다.

http 프록시를 처음부터 작성하는 것보다 훨씬 간단합니다.

관련 문제