创建一个 http 代理,可以在将 http 响应发送到客户端之前对其进行修改

发布于 2024-11-05 09:43:14 字数 159 浏览 4 评论 0原文

我正在使用 wget 从网络上抓取一些内容,但我不想关注页面的一部分。我想我可以设置一个代理,在将网页返回到 wget 之前删除我不想处理的部分,但我不确定如何实现这一点。

有没有一个代理可以让我轻松修改 python 或 node.js 中的 http 响应?

I'm using wget to grab a something from the web, but I don't want to follow a portion of the page. I thought I could set up a proxy that would remove the parts of the webpage I didn't want to be processed, before returning it to wget but I'm not sure how I would accomplish that.

Is there a proxy that lets me easily modify the http response in python or node.js?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

硬不硬你别怂 2024-11-12 09:43:14

有多种方法可以实现这一目标。这应该可以帮助您开始(使用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)

There are several ways you could achieve this goal. This should get you started (using node.js). In the following example I am fetching google.com and replacting all instances of "google" with "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)
小梨窩很甜 2024-11-12 09:43:14

在nodejs中,我会分叉 node-http-proxy 并根据我的需要自定义代码。

恕我直言,比从头开始编写 http 代理要简单得多。

In nodejs I would fork node-http-proxy and customize the code to my needs.

Much simpler that writing an http proxy from scratch, IMHO.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文