BeautifulSoup 创建一个 <img /> 标签

Posted

技术标签:

【中文标题】BeautifulSoup 创建一个 <img /> 标签【英文标题】:BeautifulSoup create a <img /> tag 【发布时间】:2015-03-17 19:40:53 【问题描述】:

我需要创建一个&lt;img /&gt; 标签。 BeautifulSoup 用我做的代码创建了一个这样的图像标签:

soup = BeautifulSoup(text, "html5")
tag = Tag(soup, name='img')
tag.attrs = 'src': '/some/url/here'
text = soup.renderContents()
print text

输出:&lt;img src="/some/url/here"&gt;&lt;/img&gt;

如何制作? :&lt;img src="/some/url/here" /&gt;

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

【问题讨论】:

【参考方案1】:

不要使用Tag() 创建新元素。使用soup.new_tag() method:

soup = BeautifulSoup(text, "html5")
new_tag = soup.new_tag('img', src='/some/url/here')
some_element.append(new_tag)

soup.new_tag() 方法会将正确的构建器传递给Tag() 对象,它是负责将&lt;img/&gt; 识别为空标记的构建器。

演示:

>>> 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>

【讨论】:

以上是关于BeautifulSoup 创建一个 <img /> 标签的主要内容,如果未能解决你的问题,请参考以下文章

BeautifulSoup爬取电影天堂全站电影资源

BeautifulSoup 库

如何在 Python 中使用 BeautifulSoup 保存对 HTML 文件所做的更改?

如何解决'连接中止'。使用BeautifulSoup在Python中出错

使用 BeautifulSoup 创建 XML 文档

Python beautifulsoup 获取标签中的值 怎么获取?