Очистка / извлечение содержимого между двумя различными HTML-тегами с использованием Python - PullRequest
0 голосов
/ 11 июня 2018

У меня есть эти данные с веб-страницы, и я хочу извлечь данные между двумя заголовками из СПИСКА БЛОКИРОВКИ ВЕБ-ТРАФИКА в ЭЛЕКТРОННЫЕ ПОЧТЫ.Я использую красивый суп и не могу найти связанные темы.Спасибо

<h2>WEB TRAFFIC BLOCK LIST</h2>

<p>Indicators are not a block list.&nbsp; If you feel the need to block web traffic, I suggest the following domain and URLs:</p>

<ul>
    <li>hxxp://209.141.49.93/hello.bin</li>
    <li>carder.bit</li>
    <li>gandcrab2pie73et.onion</li>
</ul>

<p>&nbsp;</p>

<h2>EMAILS</h2>

1 Ответ

0 голосов
/ 11 июня 2018

Вы можете использовать регулярное выражение:

content = re.search(
    '<h2>WEB TRAFFIC BLOCK LIST</h2>(.*?)<h2>EMAILS</h2>',
    html,
    re.DOTALL
).group(1)

Или с Beautiful Soup собрать узлы между начальным и конечным тегами:

soup = BeautifulSoup(html, 'html.parser')
start = soup.find('h2', text='WEB TRAFFIC BLOCK LIST')
end = soup.find('h2', text='EMAILS')
content = ''
item = start.nextSibling

while item != end:
  content += str(item)
  item = item.nextSibling

print(content)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...