2011-07-11 65 views
0

我想在python 2.7中解析url'http://www.5min.com/handlers/SitemapHandler.ashx?type=videositemap & page = 1'。問題是當我在urlopen中打開url時,它不顯示源,它顯示奇怪的字符。它可能被編碼。在python中解析.ashx文件

+0

看起來像直截了當的XML給我。 –

+0

請向我們展示您看到的「奇怪角色」。 – Tremmors

回答

1

您正在解析web服務器的響應而不是.ashx文件。在瀏覽器中打開該網址。這是當你用urlopen打開它時python會看到的東西。

從開放,這些都是我的響應得到了標題:

Cache-Control:private 
Content-Encoding:gzip 
Content-Length:1100193 
Content-Type:application/xml 
Date:Mon, 11 Jul 2011 20:21:40 GMT 
Server:Microsoft-IIS/7.5 
Set-Cookie:NSC_bobmztjt-5njo-opjq*80=ffffffff4304fd3345525d5f4f58455e445a4a423660;expires=Mon, 11-Jul-2011 20:23:42  GMT;path=/;httponly 
X-AspNet-Version:4.0.30319 
X-Powered-By:ASP.NET 
X-Server:fmv-m09 - www 

事實上,它看起來像響應將是XML格式。所以你需要用ElementTree解析XML(或者你喜歡的東西)。另請注意,服務器正在發送編碼爲gzip(ZipFile)的響應,根據urlopen是否允許,它可能會也可能不會這樣做。如果你看到Urlopen的亂碼嘗試使用python的ZipFile來解壓縮響應