Веб парсинг с помощью 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>]