2012-10-19 30 views
0

现在我已经从网站A中的HTTP响应,我需要改变所有的链接URL在本HTTP响应B网站的网址,这样当用户获得浏览器此HTTP响应,在点击链接,就会被引导到B网站不是A.如何更改HTTP响应中的链接url?

我使用Python和Django的。有没有一个软件包或工具可以做到这一点?

在此先感谢。

+1

你尝试过'urlparse'吗? – ronak

+0

我试图做的是解析http响应并修改其中的所有链接url。 urlparse只是将一个URL解析为不同的组件。 – Peters

+0

为什么不能更改解析的项目并更新它并根据你需要生成一个新的项目 – ronak

回答

0

取决于你想用它做什么,你从一个网站获得响应,性质,以及它是多么的重要,更换高效,有做事的一些可能的方式。我不是100%清楚你的情况以及你想达到的目标。

如果从一个网站的响应链接与网站A的主机启动,然后就得到响应作为一个字符串,并做response = response.replace('http://website-a.com', 'http://website-b.com')你呈现给用户的响应之前。

如果响应是HTML,并且链接是相对的,代码最简单的解决办法可能是使用lxml.rewrite_links(见http://lxml.de/lxmlhtml.html#working-with-links)。 我怀疑这是你在找什么。

如果你有一些其他的情况,好,那我不知道什么是适当的。也许是一个正则表达式。也许是您自己设计的自定义算法。这取决于您从网站A获得什么样的内容,如何识别链接以及如何更改它们。

0

如果您使用Apache Web服务器作为你可以使用一个模块中像http://mod-replace.sourceforge.net/响应替换文本。这似乎比为每个请求调用perl或python更合理。但是你必须意识到所有的文本都可能被取代 - 不仅仅是有效的链接。因此这将是一个非常肮脏的解决方案。

+0

是的,正如你所说,这会影响到其他环节。我买不起这个。不过谢谢你。 – Peters