在Python中解析.ashx文件
我正在尝试在Python 2.7中解析这个网址 'http://www.5min.com/handlers/SitemapHandler.ashx?type=videositemap&page=1'。问题是,当我用urlopen打开这个网址时,它没有显示网页的源代码,而是显示了一些奇怪的字符。可能是因为这个内容被编码了。
1 个回答
1
你现在是在解析一个网页服务器的响应,而不是一个 .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 来解压这个响应。