0
我想編程一個小的HTTP本地代理服務器在我的機器上運行並運行一些測試。 我的服務器目前運行完美,並提供請求罰款。搜索數據包中的數據。在python
但是,當我嘗試分析打包器時 - 出現問題。
我正在搜索包中的標籤「」,並在找到它時將消息打印到日誌中。 它工作的網站數量非常有限,而另一方面,如StackOverflow,例如,它沒有。
在我搜索接收到的數據中的單詞之前,是否需要進行某種解碼?如果是這樣 - 哪個解碼?如何重新編碼數據以供瀏覽器使用?
這裏是我的搜索代碼,並替換:
data = i.recv(8192)
if data:
if "<head>" in data:
print "Found Head Tag."
上面的代碼是一個簡單的Python代碼來檢索從插座中的數據,將其保存到數據對象,並搜索想要的標籤。正如我所說,它只適用於少數網站,而不適用於其他網站。
謝謝!但是,如何解壓縮一個數據塊,如上所述?當我嘗試使用zlib模塊時,出現錯誤,表示它不是有效的壓縮數據。如果你幫我解決問題,我會很高興。我是否需要緩衝整個響應者?它會大大減緩衝浪速度,不是嗎? –
另外,如果我使用zlib而不是gzip,它會影響嗎? TVM! –
是的,您需要緩衝整個HTTP響應,檢查Content-Encoding的值,提取響應的正文(無標題)並將其傳遞到「gzip」模塊(zlib使用的壓縮算法相同,但它們的輸出格式不兼容)。當然,響應可以使用不同的算法進行壓縮或編碼,但afaik實際上只使用gzip。您還應該考慮在壓縮後重新壓縮數據,或在將結果轉發到客戶端之前移除Content-Encoding標頭。 – smeso