使用更快的css属性选择器,您可以传递一个逗号分隔的列表来检索多个from bs4 import BeautifulSoup
html = '''
Text I want to extract
Text I want to extract 2
'''
soup = BeautifulSoup(html, 'lxml')
data = [item.text.strip() for item in soup.select('[data-test="specific-location"],[data-test="specific-location1"]')]
print(data)
如果这些属性出现在其他地方,请在前面添加td
^{pr2}$
您还可以在末尾添加一个带有子代组合器的span类型选择器来指定td的子span,但这里似乎有点过分了。在data = [item.text.strip() for item in soup.select('td[data-test="specific-location"] span,td[data-test="specific-location1"] span')]
多亏了@facelessuser,你也可以使用苗条td:is([data-test="specific-location"], [data-test="specific-location1"]) span