在使用Beautiful Soup的.get_text()方法时,如果遇到无法正常工作的情况,可能是因为.get_text()方法默认会返回所有文本内容,而网页中的标签通常包含了其他标签或属性,导致结果不符合预期。
解决方法是使用Beautiful Soup中的.find_all()方法来查找特定的标签,并使用字符串拼接的方式获取其文本内容。以下是一个示例代码:
from bs4 import BeautifulSoup
html = '''
Hello world!
'''
soup = BeautifulSoup(html, 'html.parser')
# 使用.find_all()方法查找所有的标签
spans = soup.find_all('span')
# 遍历所有的标签,并使用字符串拼接的方式获取其文本内容
for span in spans:
text = ''.join(span.find_all(text=True))
print(text)
输出结果为:
Hello world!
通过这种方式,可以正确获取到标签中的文本内容。