从网站打开图像

问题描述 投票:2回答:1

我试图制作一个简单的程序从网站xkcd.com中提取图像,我似乎遇到了一个问题,它返回列表对象没有属性显示。有人知道怎么修这个东西吗?

import requests
from lxml import html

r = requests.get("http://imgs.xkcd.com/comics/self_driving_issues.png")
tree = html.fromstring(r.content)
final = tree.xpath("""//*[@id="comic"]/img""")
final.show()
python-3.x image-processing python-requests
1个回答
3
投票

您对requests.get的调用是检索实际图像,即png的字节代码。使用xpath解析或搜索没有html。

请注意,内容是字节:

r = requests.get("http://imgs.xkcd.com/comics/self_driving_issues.png")
print(r.content)

b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x02\xe4\x00\x00\x01#\x08\x03\x00\x00\x00M\x7f\xe4\xc6\x00\x00\x00\x04gAMA\x00\x00\xb1\x8f

在这里,您可以看到可以将结果直接保存到磁盘。

import requests

r = requests.get("http://imgs.xkcd.com/comics/self_driving_issues.png")
with open("myimage.png", "wb") as f:
    f.write(r.content)

[编辑]并显示图像(您需要安装pillow。)

import requests
from PIL import Image
import io

r = requests.get("http://imgs.xkcd.com/comics/self_driving_issues.png")

img = Image.open(io.BytesIO(r.content))
img.show()
© www.soinside.com 2019 - 2024. All rights reserved.