使用Parser替换所有IMG元素的SRC

CPC*_*ase 8 html python parsing image src

我正在寻找一种方法来替换所有不使用正则表达式的IMG标签中的SRC属性.(想要使用默认Python安装中包含的任何开箱即用的HTML解析器)我需要将源代码从以下内容减少到:

<img src="cid:imagename">
Run Code Online (Sandbox Code Playgroud)

我正在尝试将所有src标记替换为指向HTML电子邮件附件的cid,因此我还需要更改源代码的所有内容,因此它只是没有路径或扩展名的文件名.

Luk*_*ský 23

Python标准库中有一个HTML解析器,但它不是很有用,而且自Python 2.6以来它已被弃用.使用BeautifulSoup做这类事情非常简单:

from BeautifulSoup import BeautifulSoup
from os.path import basename, splitext
soup = BeautifulSoup(my_html_string)
for img in soup.findAll('img'):
    img['src'] = 'cid:' + splitext(basename(img['src']))[0]
my_html_string = str(soup)
Run Code Online (Sandbox Code Playgroud)

  • stdlib中的HTMLParser不被弃用?它来自哪里?这是来自python 3版本的文档:http://docs.python.org/3/library/html.parser.html (2认同)