Beautiful Soup:如何获取与任何给定字符串匹配的数据

时间:2019-06-27 13:55:31

标签: python python-3.x python-2.7 beautifulsoup html-parsing

我正在尝试找出可以匹配任何输入字符串的元素。

例如:-

data = soup.find(text="something")

这工作得很好,但是当我必须搜索这样的东西时如何使用它:-

data = soup.find(text="something" or text="another something")

如果不可能搜索多个字符串,那么执行类似操作的最佳方法应该是什么。

2 个答案:

答案 0 :(得分:3)

Regex当然是搜索多个文本的一种有效且有用的方法,但是人们经常忘记(或不知道)您可以传递一个字符串列表,Beautiful Soup将返回与其中的任何项目匹配的结果。列表:

from bs4 import BeautifulSoup

html = """
<div>something</div>
<div>something else</div>
"""
soup = BeautifulSoup(html, "lxml")
items = soup.find_all(text=["something", "something else"])
print(items)

输出

['something', 'something else']

答案 1 :(得分:2)

您可以在此处使用正则表达式。

例如:

import re
data = soup.find(text=re.compile("something|another something"))