尝试按链接保存文件,但面对TypeError: unhashable type: 'list'
import requests
import lxml
page = requests.get('https://karabas.com')
for link in links:
event_page = requests.get(link)
tree_event_page = html.fromstring(event_page.content)
image = tree_event_page.xpath('//figure[@class="photo"]/meta/@content')
f = open('00000001.jpg','w+')
f.write(requests.get(image).content)
image
变量是一个链接。我试图下载图片的方式有什么问题?
链接示例:https://image.karabas.com/w/350/h/496/f/files/import/1308758146_ImageBig636415263072975494.jpg
答案 0 :(得分:1)
我无法重现您的错误,可能是因为您遗漏了代码的基本部分,例如,page
从未使用过,links
从未定义过。在任何情况下,我认为您的错误可能是由于您的image
变量是字符串列表(对应于链接),而不是您认为的单个链接。这就是xpath
method返回的内容。
因此,如果您知道只返回一个结果,则需要以下内容:
image = tree_event_page.xpath('//figure[@class="photo"]/meta/@content')[0]
重点是最后的[0]
。
PS:经过一番猜测后,我确认下面的脚本可能会按照您的意图运行:
import requests
from lxml import html
links = ['https://kiev.karabas.com/pro-mishej-ta-lyudej-2']
for link in links:
event_page = requests.get(link)
tree_event_page = html.fromstring(event_page.content)
image = tree_event_page.xpath('//figure[@class="photo"]/meta/@content')[0]
with open('00000001.jpg','w+') as f:
f.write(requests.get(image).content)