#python #python-3.x #beautifulsoup
#python #python-3.x #beautifulsoup
Вопрос:
Я пытаюсь прочитать несколько строк из файла с аннотациями.
Строка выглядит так:
lin1 = '9272171 <category="SpecificDisease1">Adult onset globoid cell leukodystrophy</category> (<category="SpecificDisease">Krabbe disease</category>): analysis of galactosylceramidase cDNA from four Japanese patients. This difference in mutation sites may affect the clinical features of <category="SpecificDisease2">GLD</category> . '
Я могу получать теги с помощью этого кода:
from bs4 import BeautifulSoup
soup = BeautifulSoup(lin1)
s1 = soup.find_all('category')
for tag in s1:
print (tag)
С принтами
<category>Adult onset globoid cell leukodystrophy</category>
<category>Krabbe disease</category>
<category>GLD</category>
Ожидаемый результат следующий:
SpecificDisease1 Adult onset globoid cell leukodystrophy
SpecificDisease Krabbe disease</category>
SpecificDisease2 GLD
Я не могу получить много от https://www.crummy.com/software/BeautifulSoup/bs3/documentation.html .
Не могли бы вы помочь, какие изменения я должен внести в свой код.
Я тоже согласен с подходом, не связанным с BeautifulSoup, но что-то эффективное.
Спасибо.
Комментарии:
1. Это допустимый HTML / XML? Я не думаю, что что-либо может идти сразу после имен тегов.
2. Не HTML / xml-файл. Обычный файл, но с тегами категорий.
Ответ №1:
вы можете использовать html.parser. Способ его использования — импортировать класс HTMLParser из модуля и создать класс, который наследуется от HTMLParser, как описано в связанной документации.