2012-10-19 29 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