解析HTML提取指定内容:获取图片src及标签后文本
如何提取指定内容中的
src属性和caption文本?
嘿,搞定这个解析需求很简单!针对你提供的这段包含HTML标签的WordPress短代码,我用Python的BeautifulSoup库来实现提取,步骤清晰又靠谱。
首先先看一下待解析的原始内容:
[caption id="attachment_16734" align="aligncenter" width="672"]<a href="http://myeduplus.it/wp-content/uploads/2017/12/consumatori.jpg"><img class="wp-image-16734 size-full" src="http://myeduplus.it/wp-content/uploads/2017/12/consumatori.jpg" alt="" width="672" height="480" /></a> La mucca: consumatore primario o erbivoro[/caption]
解决方案代码
首先确保你已经安装了beautifulsoup4库,如果没装的话先运行:
pip install beautifulsoup4
然后用以下代码提取信息:
from bs4 import BeautifulSoup # 原始待解析内容 raw_content = ''' [caption id="attachment_16734" align="aligncenter" width="672"]<a href="http://myeduplus.it/wp-content/uploads/2017/12/consumatori.jpg"><img class="wp-image-16734 size-full" src="http://myeduplus.it/wp-content/uploads/2017/12/consumatori.jpg" alt="" width="672" height="480" /></a> La mucca: consumatore primario o erbivoro[/caption] ''' # 将WordPress短代码的方括号替换为尖括号,让解析器可识别 parsable_html = raw_content.replace('[', '<').replace(']', '>') # 初始化BeautifulSoup解析器 soup = BeautifulSoup(parsable_html, 'html.parser') # 提取img标签的src属性 img_tag = soup.find('img') img_src = img_tag['src'] if img_tag else '未找到目标img标签' # 提取caption内的目标文本(自动过滤空白和无关空文本) caption_tag = soup.find('caption') caption_text = ' '.join([text.strip() for text in caption_tag.stripped_strings]) # 输出结果 print("提取结果:") print(f"图片地址(img src):{img_src}") print(f"Caption文本:{caption_text}")
运行结果
提取结果: 图片地址(img src):http://myeduplus.it/wp-content/uploads/2017/12/consumatori.jpg Caption文本:La mucca: consumatore primario o erbivoro
关键说明
- 因为原始内容是WordPress的短代码格式(用方括号包裹caption),不是标准HTML,所以我们先做了方括号转尖括号的处理,让BeautifulSoup能正确解析标签结构。
stripped_strings方法会遍历标签下所有非空白的文本节点,自动忽略掉a/img标签里的空内容,精准提取到我们需要的caption文本。- 如果是标准HTML的
<caption>标签,直接跳过方括号替换步骤即可。
内容的提问来源于stack exchange,提问作者cancer
相关产品推荐
相关产品推荐

