添加不带引号的自定义属性

时间:2019-03-05 11:09:31

标签: python python-3.x beautifulsoup

我正在尝试将属性添加到不带引号的HTML标记中,因此我可以在引号之前添加斜杠,然后手动添加引号。

src属性需要保留为空,我无法重命名。

我当前的代码如下。

data = open('data.sql')
soup = BeautifulSoup(data, 'html.parser')

for img in soup.find_all(name="img"):

    #get src
    src = img['src']

    # clear src
    img['src'] = ""

    # add new attribute
    img.attrs["data-src"] = src
    print(img.attrs["data-src"])


#save soup
with open('db.sql', "w") as file:
    file.write(str(soup))

我的结果(保存到db.sql之后):

<img src="" data-src='\"/folder/img/image.jpg\"'>

我要查找的内容(不带单引号):

<img src=\"/folder/img/image.jpg\">

我要尝试的是:
使用Bs4在db.sql中加载
将src-data属性设置为src值
src属性的清除值
将文件保存到db2.sql

2 个答案:

答案 0 :(得分:0)

使用del删除属性:

for img in soup.find_all(name="img"):
    src = img['src']
    del img['src']
    img.attrs['data-src'] = src

答案 1 :(得分:0)

该问题的解决方案是循环遍历数据库行,获取包含HTML的列,然后创建一个汤(Bs4)。