Beautiful Soup:如何获取与任何给定字符串匹配的数据
Beautiful Soup : How to get data which matches any of the given string
我正在尝试找出可以匹配任何输入字符串的元素。
例如:-
data = soup.find(text="something")
这工作得很好,但是当我必须搜索这样的东西时如何使用它:-
data = soup.find(text="something" or text="another something")
如果无法搜索多个字符串,那么执行类似操作的最佳方式应该是什么。
您可以在此处使用正则表达式。
例如:
import re
data = soup.find(text=re.compile("something|another something"))
正则表达式当然是搜索多个文本的有效且有用的方法,但人们经常忘记(或不知道)您可以传入字符串列表,Beautiful Soup 将 return 结果匹配列表中的任何项目:
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']
我正在尝试找出可以匹配任何输入字符串的元素。
例如:-
data = soup.find(text="something")
这工作得很好,但是当我必须搜索这样的东西时如何使用它:-
data = soup.find(text="something" or text="another something")
如果无法搜索多个字符串,那么执行类似操作的最佳方式应该是什么。
您可以在此处使用正则表达式。
例如:
import re
data = soup.find(text=re.compile("something|another something"))
正则表达式当然是搜索多个文本的有效且有用的方法,但人们经常忘记(或不知道)您可以传入字符串列表,Beautiful Soup 将 return 结果匹配列表中的任何项目:
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']