Создание http-прокси, который может изменять http-ответ перед отправкой его клиенту

#python #http #proxy #node.js #http-proxy

#python #http #прокси #node.js #http-прокси

Вопрос:

Я использую wget для получения чего-либо из Интернета, но я не хочу переходить на часть страницы. Я думал, что смогу настроить прокси, который удалит те части веб-страницы, которые я не хотел обрабатывать, прежде чем возвращать их в wget, но я не уверен, как я это сделаю.

Есть ли прокси, который позволяет мне легко изменять http-ответ на python или node.js ?

Комментарии:

1. Я думаю, что требуется более подробная информация. Что вы на самом деле пытаетесь сделать? Что вы хотите сделать с ответом после его изменения? Что вы хотите изменить в ответе? Вы хотите изменить заголовки? Или данные?

2. @Acorn — Я хочу изменить эти данные на этапе прокси-сервера: Internet -> Proxy -> wget

Ответ №1:

Есть несколько способов, которыми вы могли бы достичь этой цели. Это должно помочь вам начать (используя 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)
  

Ответ №2:

В nodejs я бы разветвил node-http-proxy и настроил код под свои нужды.

Гораздо проще, чем писать http-прокси с нуля, ИМХО.