Python URL 请求响应解码



我正在尝试从urllib.request响应中获取指向图像的链接。

我正在尝试从此页面获取内容:https://drscdn.500px.org/photo/27428737/m%3D900/v2?webp=true&sig=3d3700c82ea515ecc0b66ca265d6909d67861fbe055c0e817b535f75b21c7ebf 并对其进行解码,但解码("utf-8")方法给了我错误:"utf-8"编解码器无法解码位置 0 的字节0xff:无效的起始字节。我已经在浏览器控制台中使用 document.characterSet 检查了页面编码,它与 utf-8 编码匹配。

def ex4():
    url = sys.argv[1]
    r = re.compile(b"<img .*? src="([^"])*" (.*?)*>")
    try:
        resource = urllib.request.urlopen(url)
        response = resource.read().decode("utf-8")
        print(response)
        obj = r.search(response)
        if obj:
            print(obj.group(1))
        else:
            print("not found")
    except Exception as e:
        print("error: ", e)

ex4()

您将获得二进制图像,因此您可以直接保存或处理图像。
例如:

url = 'https://drscdn.500px.org/photo/27428737/m%3D900/v2?webp=true&sig=3d3700c82ea515ecc0b66ca265d6909d67861fbe055c0e817b535f75b21c7ebf'
resource = urllib.request.urlopen(url)
response = resource.read()
with open('/tmp/foo.jpg', 'wb') as f:
    f.write(response)

你想实现什么?获取图像并将其保存在文件上?如果是,只需将其保存在文件中

def ex4():
    url = sys.argv[1]
    try:
        resource = urllib.request.urlopen(url)
        response = resource.read()
        with open('img.png', 'wb') as f:
            f.write(a)
    except Exception as e:
        print("error: ", e)
ex4()

最新更新