Python BeautifulSoup技术问题:如何获取文本对应的HTML标签?
解决方法
直接获取文本节点的父标签
你当前的代码拿到的是文本节点本身,调用.parent就能获取它所在的HTML标签:parent_tag = soup.find(text="Market Cap").parent print(parent_tag)运行后会返回
<strong>Market Cap</strong>这个完整标签。精准定位目标标签
如果你明确知道目标文本在<strong>标签里,可以直接查找该标签并匹配内容:strong_tag = soup.find("strong", string="Market Cap") print(strong_tag)这种方式一步到位,直接返回包含目标文本的
<strong>标签。处理文本格式差异
如果网页里的文本存在空格、换行或者大小写不一致的情况,用正则表达式匹配更稳妥:import re # 通过文本节点找父标签 parent_tag = soup.find(string=re.compile(r"Market Cap", re.IGNORECASE)).parent # 直接匹配标签 strong_tag = soup.find("strong", string=re.compile(r"Market Cap", re.IGNORECASE))
内容的提问来源于stack exchange,提问作者almostbeautifulsoup
相关产品推荐
相关产品推荐

