Получить те же теги с различным содержанием из XML с Beautifulsoup - PullRequest
0 голосов
/ 08 мая 2019

У меня есть этот xml:

<dc:type>image fixe</dc:type>
<dc:type>image</dc:type>
<dc:type>still image</dc:type>
<dc:type>dessin</dc:type>
<dc:type>drawing</dc:type>

Мне нужен весь текст всех тегов "dc: type".Я могу получить только первое с soup.find("dc:type").get_text(), но когда я пытаюсь, например:

for i in soup.find_all("dc:type"):
     type = "|".join(i.get_text())

, я ничего не получаю.Кроме того, печать только soup.find_all("dc:type") ничего не дает, в то время как печать только с поиском выглядит нормально.Что я делаю не так?

1 Ответ

1 голос
/ 08 мая 2019

Я не уверен, почему он не работает с вами. У меня есть все значения.

from bs4 import BeautifulSoup

data='''<dc:type>image fixe</dc:type>
<dc:type>image</dc:type>
<dc:type>still image</dc:type>
<dc:type>dessin</dc:type>
<dc:type>drawing</dc:type>'''

soup=BeautifulSoup(data,'html.parser')
for item in soup.find_all('dc:type'):
 print(item.text)

Вывод:

image fixe
image
still image
dessin
drawing

Вы также можете использовать лямбду для поиска тегаимя.

from bs4 import BeautifulSoup

data='''<dc:type>image fixe</dc:type>
<dc:type>image</dc:type>
<dc:type>still image</dc:type>
<dc:type>dessin</dc:type>
<dc:type>drawing</dc:type>'''

soup=BeautifulSoup(data,'html.parser')
for item in soup.find_all(lambda tag:tag.name=='dc:type'):
 print(item.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...