daobalong
2021-02-08 16:47
采纳率: 72.7%
浏览 139

能否把自定义的字典键值对写入图片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信息的,比如是否可以像详细信息里的“说明”,“来源”等,加入一大栏:项目标签,然后下面是对应的信息

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • Bryce__LY 2021-02-08 18:02
    已采纳

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

    点赞 打赏 评论
  • 天际的海浪 2021-02-08 17:00
    点赞 打赏 评论
  • bj_0163_bj 2021-02-08 17:08
    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)
    点赞 打赏 评论
  • CharlizeTheron 2021-02-08 20:07

    把图片发给我

    点赞 打赏 评论
  • 给你骨质唱疏松 2021-02-09 12:43

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

    dic = {"位置":"日本","类型":"建筑","标签":"福冈"}
    
    for key,value in dic.items():
        print(f"{key} : {value}")

     

    点赞 打赏 评论
  • 给你骨质唱疏松 2021-02-09 12:43

     

    点赞 打赏 评论

相关推荐 更多相似问题