如何使用Beautiful Soup提取<img>标签后的文本?
解决方法
你要提取的是<img>标签紧随其后的文本,这段内容在Beautiful Soup中属于img标签的下一个兄弟节点(NavigableString类型),可以通过以下步骤实现:
- 定位到目标
<img>标签 - 调用
.next_sibling获取它后面的文本节点 - 清理文本中的多余空格和引号
示例代码
from bs4 import BeautifulSoup html = ''' <span content>"text" <img content src="/assets/images/photo.png">"Text I would like to grab" <span content class="classname">Text</span> </span> ''' soup = BeautifulSoup(html, 'html.parser') # 定位目标img标签,若页面有多个img,可结合src属性精准筛选 img_tag = soup.find('img', src='/assets/images/photo.png') # 清理文本:去除前后空白和包裹的双引号 target_text = img_tag.next_sibling.strip().strip('"') print(target_text) # 输出: Text I would like to grab
补充说明
- 如果需要批量处理多个类似结构的标签,可以用
.find_all()遍历所有符合条件的img标签,再逐个提取后续文本 - 若实际场景中文本没有被双引号包裹,可去掉
.strip('"')这一步
内容的提问来源于stack exchange,提问作者Userq9314812382
相关产品推荐
相关产品推荐

