根据文档,find方法有一个argument属性,使用它应该可以选择ISBN
isbn = metadata.find('dc:identifier', attrs={"opf:scheme": "ISBN"})
所以代码可以写成
from bs4 import BeautifulSoup
with open ('metadata.opf', 'r') as f:
file = f.read()
metadata = BeautifulSoup(file, 'xml')
title = metadata.find('dc:title')
print(title.text)
author = metadata.find('dc:creator')
print(author.text)
isbn = metadata.find('dc:identifier', attrs={"opf:scheme": "ISBN"}) # This finds 4 fields, as expected.
print(isbn.text)
并且应该导致
Princeton Review Digital SAT Premium Prep, 2024: 4 Practice Tests + Online Flashcards + Review & Tools
The Princeton Review
9780593516874
https://www.crummy.com/software/BeautifulSoup/bs4/doc/#find