我使用的urllib(在Python)来抓取的SVG文件:

import urllib

urllib.urlopen('http://alpha.vectors.cloudmade.com/BC9A493B41014CAABB98F0471D759707/-122.2487,37.87588,-122.265823,37.868054?styleid=1&viewport=400x231').read()

产生的那种输出:

xb6\xf6\x00\xb3\xfb2\xff\xda\xc5\xf2\xc2\x14\xef\xcd\x82\x0b\xdbU\xb0\x81\xcaF\xd8\x1a\xf6\xdf[i)\xba\xcf\x80\xab\xd6\x8c\xe3l_\xe7\n\xed2,\xbdm\xa0_|\xbb\x12\xff\xb6\xf8\xda\xd9\xc3\xd9\t\xde\x9a\xf8\xae\xb3T\xa3\r`\x8a\x08!T\xfb8\x92\x95\x0c\xdd\x8b!\x02P\xea@\x98\x1c^\xc7\xda\\\xec\xe3\xe1\xbe,0\xcd\xbeZ~\x92\xb3\xfa\xdd\xfcbyu\xb8\x83\xbb\xbdS\x0f\x82\x0b\xfe\xf5_\xdawn\xff\xef_\xff\xe5\xfa\x1f?\xbf\xffoZ\x0f\x8b\xbfV\xf4\x04\x00'

当我期待更多这样的:

<?xml version='1.0' encoding='UTF-8'?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:cm="http://cloudmade.com/" width="400" height="231">   <rect width="100%" height="100%" fill="#eae8dd" opacity="1"/>   <g transform="scale(0.209849975856)">
    <g transform="translate(13610569, 4561906)" flood-opacity="0.1" flood-color="grey">
      <path d="M -13610027.720000000670552 -4562403.660000000149012

我想这是二进制与ASCII的问题。谁能帮助我(一个Python新手)与适当的转换,这样我可以得到与解析和操纵SVG代码?

有帮助吗?

解决方案

它的gzip压缩(检查Content-Encoding HTTP标头)。可以使用 gzip 模块进行解压缩。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top