Извлечение текста из разнообразного HTML с использованием Python - PullRequest
0 голосов
/ 29 июня 2018

Допустим, у вас есть разнообразный HTML-блок, подобный этому:

<div class="container">
  <div class="sub-container">
    <a href="example.com">Blue</a>
  </div>
  Black
  </br>
  <div class="sub-container">
    <a href="example.com">Yellow</a>
  </div>
  <div class="sub-container">
    <a href="example.com">Pink</a>
  </div>
  Orange
  </br>
</div>

Каким будет ваш подход с использованием python для извлечения цветов из этого блока HTML?

Ответы [ 2 ]

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

Вы можете использовать .text, чтобы получить все цвета из образца HTML.

Ex:

from bs4 import BeautifulSoup
s = """<div class="container">
  <div class="sub-container">
    <a href="example.com">Blue</a>
  </div>
  Black
  </br>
  <div class="sub-container">
    <a href="example.com">Yellow</a>
  </div>
  <div class="sub-container">
    <a href="example.com">Pink</a>
  </div>
  Orange
  </br>
</div>"""
soup = BeautifulSoup(s, "html.parser")
print(soup.text.strip().replace(" ", ""))

Выход:

Blue

Black


Yellow


Pink

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

Чтобы извлечь тег в html с помощью регулярных выражений, вы можете попробовать это:

<(\w+)[\s\w\d=\-+\.]*>(.*)</\1\s*>

А затем используйте группу 2, чтобы найти все внутри этого тега. Вы также можете изменить начало регулярного выражения на:

<(a) (etc...)

И это будет соответствовать только тегам.

...