能否把自定义的字典键值对写入图片exif详细信息中

想把网站详情页的项目标签栏的数据写入图片详细信息中

from typing import Text
from bs4 import BeautifulSoup
import requests
from PIL import Image
import piexif
 


headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36',
    'Accept-Language':'zh-CN'
}


page_respond = requests.get(url = 'https://www.gooood.cn/maruhon-fukuoka-office-showroom-by-katori-archi-design-associates.htm',headers = headers)
page_Soup = BeautifulSoup(page_respond .content, 'lxml')
page_spec_label = page_Soup.findAll('span', class_= 'label-text')
page_spec_data = page_Soup.findAll('div', class_= 'spec-data')

key_word = []
value_word = []

for i in page_spec_label:
    # print(i.string)
    key_word.append(i.string)

for j in page_spec_data:
    for k in j.a:
        # print(k.string)
        value_word.append(k.string)

print(key_word)
print(value_word)

dict_word = dict(zip(key_word,value_word))
print(dict_word)

address_test= 'F:/CodeWar/spider/Archdaily/IRPC Innovation Center  - Architects 49/1.jpg'
im = Image.open(address_test)
exif_dict = piexif.load(im.info['exif'])

 

['设计公司', '位置', '类型', '材料', '标签', '分类']
['KATORI archi+design associates', ' 日本 ', ' 建筑 ', ' 木材 ', ' 福冈 ', ' 办公室 ']
{'设计公司': 'KATORI archi+design associates', '位置': ' 日本 ', '类型': ' 建筑 ', '材料': ' 木材 ', '标签': ' 福冈 ', '分类': ' 办公室 '}

上面dict_word是基本爬到的数据(还有其他兄弟节点字符串,不知道如何存储到同一值中),能不能把它们加入到exif中,网上查的资料好多都是修改现有exif信息的,比如是否可以像详细信息里的“说明”,“来源”等,加入一大栏:项目标签,然后下面是对应的信息

这个是不行的  只能改默认字段  或者加到备注里

https://blog.csdn.net/weixin_43789195/article/details/105579696

import os
from PIL import Image
import piexif

im = Image.open('0.jpg')
exif_dict = piexif.load(im.info["exif"])
exif_dict["0th"][piexif.ImageIFD.Artist] = "{'设计公司': 'KATORI archi+design associates', '位置': ' 日本 ', '类型': ' 建筑 ', '材料': ' 木材 ', '标签': ' 福冈 ', '分类': ' 办公室 '}".encode()
exif_bytes = piexif.dump(exif_dict)
im.save("00.jpg", exif=exif_bytes)

 

把图片发给我

字典取出键值对的方式可以使用 items( ) 方法:

dic = {"位置":"日本","类型":"建筑","标签":"福冈"}

for key,value in dic.items():
    print(f"{key} : {value}")