使用 Python 从 Varied HTML 中提取文本

Extract Text from Varied HTML using Python

假设您有一个像这样的 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 块中提取颜色?

要使用正则表达式提取 html 中的标签,您可能想试试这个:

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

然后使用组 2 查找该标签内的所有内容。您还可以将正则表达式的开头更改为:

<(a) (etc...)

而且只会匹配一个标签。

您可以使用 .text 从样本 html 中获取所有颜色。

例如:

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