Веб парсинг с помощью python

подскажите как с помощью регулярки получить значение DOI: 10.13108/2021-13-1-3 из всего html (пример)

<a title="DOI: 10.13108/2021-13-1-3" class=SLink target=_blank href='https://doi.org/10.13108%2F2021-13-1-3'>

Попытался сделать так , но все равно не получается

 doi = soup.find('a', title=re.compile(r"DOI: 10.13108\/\d{4}-\d{2}-\d{1,}-\d{1,}"))

Ответы (1 шт):

Автор решения: Сергей Ш

как пример

import re
from bs4 import BeautifulSoup

html_doc = """
<a class="SLink" target="_blank" title="DOI: 10.13108/2021-13-1-3" href="https://doi.org/10.13108/2021-13-1-3"></a>
<a class="SLink" target="_blank" title="DOI: 10.13108/2021-15-1-3" href="https://doi.org/10.13108/2021-15-1-3"></a>
<a class="SLink" target="_blank" title="DOI: 10.13008/2021-15-1-3" href="https://doi.org/10.13008/2021-15-1-3"></a>
<a class="SLink" target="_blank" title="DOI: 11.13108/2021-15-1-3" href="https://doi.org/11.13108/2021-15-1-3"></a>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.find_all(title=re.compile("DOI: 10.13108/")))

вывод

[<a class="SLink" href="https://doi.org/10.13108/2021-13-1-3" target="_blank" title="DOI: 10.13108/2021-13-1-3"></a>,
 <a class="SLink" href="https://doi.org/10.13108/2021-15-1-3" target="_blank" title="DOI: 10.13108/2021-15-1-3"></a>]
→ Ссылка