在使用BeautifulSoup解析HTML文档时,如果遇到类似以下代码的情况:
from bs4 import BeautifulSoup
html = """
hello
world
"""
soup = BeautifulSoup(html, 'html.parser')
divs = soup.find_all('div', text=['hello', 'world'])
print(divs)
运行会报错:
ValueError: ResultSet must have only one element; multiple elements were found
这是因为BeautifulSoup的text参数不支持同时传入多个字符串。解决方法是将多个字符串分开传入,如下所示:
divs = soup.find_all('div', text='hello')
divs += soup.find_all('div', text='world')
print(divs)
输出:
[hello, world]
这样就可以成功地获取所有包含指定文本的div标签了。