也就是说,假设我正在写一些托管在foo.com
. 我希望能够为用户提供服务foo.com/bar.com
并能够与之交互(例如,通过点击导航到)。我知道这是代理应该做的。我需要对访问代理的请求进行一些预处理,这就是我转向 Web 框架的原因。我偏爱 django、rails 或 sinatra,或其他 python/ruby 解决方案,但任何一个都可以,真的。bar.com
foo.com
bar.com
foo.com/bar.com/baz
提前致谢; 欢迎提出其他建议。
也就是说,假设我正在写一些托管在foo.com
. 我希望能够为用户提供服务foo.com/bar.com
并能够与之交互(例如,通过点击导航到)。我知道这是代理应该做的。我需要对访问代理的请求进行一些预处理,这就是我转向 Web 框架的原因。我偏爱 django、rails 或 sinatra,或其他 python/ruby 解决方案,但任何一个都可以,真的。bar.com
foo.com
bar.com
foo.com/bar.com/baz
提前致谢; 欢迎提出其他建议。
首先,您需要解析 foo.com 上的 URL。在 django 中,你可以有一个这样的 url(未测试):
url(r'(?P<url>.*)$', my_proxy_view, name = 'proxy')
所以http://foo.com/bar.com/baz/会给你一个 'bar.com/baz/' 的 URL,你可以在你的视图中随意使用。
然后,您必须使用 urllib2 之类的库来检索 bar.com 上的页面。
当您拥有远程页面的内容时,您需要将所有指向 bar.com 的链接(锚元素)更改为指向您代理的 URL。如果您想代理图像、样式表和 javascript,您还需要更改它们的链接。
您可能还想尽可能多地缓存。并确保在 urllib 请求上设置一个用户代理,让其他站点知道这是某种机器人或代理。
话虽如此,这听起来是一个非常愚蠢的想法。你的用例是什么?