首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BeautifulSoup创建一个<img />标记

BeautifulSoup创建一个<img />标记
EN

Stack Overflow用户
提问于 2015-01-19 17:54:40
回答 2查看 3.1K关注 0票数 8

我需要创建一个<img />标记。BeautifulSoup用我所做的代码创建了这样的图像标记:

代码语言:javascript
运行
复制
soup = BeautifulSoup(text, "html5")
tag = Tag(soup, name='img')
tag.attrs = {'src': '/some/url/here'}
text = soup.renderContents()
print text

输出:<img src="/some/url/here"></img>

如何制作?:<img src="/some/url/here" />

当然可以用REGEX或类似的化学方法来完成。然而,我想知道是否有任何标准的方法来产生这样的标签?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-19 18:03:14

不要使用Tag()创建新元素。使用 method

代码语言:javascript
运行
复制
soup = BeautifulSoup(text, "html5")
new_tag = soup.new_tag('img', src='/some/url/here')
some_element.append(new_tag)

soup.new_tag()方法将把正确的构建器传递给Tag()对象,负责将<img/>识别为空标记的是构建器。

演示:

代码语言:javascript
运行
复制
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<div></div>', "html5")
>>> new_tag = soup.new_tag('img', src='/some/url/here')
>>> new_tag
<img src="/some/url/here"/>
>>> soup.div.append(new_tag)
>>> print soup.prettify()
<html>
 <head>
 </head>
 <body>
  <div>
   <img src="/some/url/here"/>
  </div>
 </body>
</html>
票数 12
EN

Stack Overflow用户

发布于 2022-01-29 16:51:52

BS4中,您也可以这样做:

代码语言:javascript
运行
复制
img = BeautifulSoup('<img src="/some/url/here" />', 'lxml').img

print(img)
print(type(img))

将产生以下结果:

代码语言:javascript
运行
复制
<img src="/some/url/here"/>
<class 'bs4.element.Tag'>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28030754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档