如何从废弃的html页面(python)生成(然后写入)xml文件

如何从废弃的html页面(python)生成(然后写入)xml文件,python,html,xml,pandas,beautifulsoup,Python,Html,Xml,Pandas,Beautifulsoup,我正在使用一个通用刮板,它可以刮取给定的页面,因此我得到了我想要的页面部分,即class.entry-content container = soup.find('div', attrs={'class':'entry-content'}) 然后我得到页面中的第一个标签和所有其他兄弟姐妹 tagg = container.find().name first = container.find(tagg) last = container.find(tagg).fin

我正在使用一个通用刮板,它可以刮取给定的页面,因此我得到了我想要的页面部分,即class.entry-content

   container = soup.find('div', attrs={'class':'entry-content'}) 
然后我得到页面中的第一个标签和所有其他兄弟姐妹

   tagg = container.find().name 
   first = container.find(tagg) 
   last = container.find(tagg).find_next_siblings()
现在我有了我想要的所有零件。然后我从每个标记以及子标记的子标记和子标记中删除类、名称、样式和id

由于某种原因,当我删除我的列表[I]['style'、'class'、'id'、'name']时,我不理解这些原因。 不起作用。所以我喜欢下面

my_list=[]
for i in range(len(last)):
    my_list.append(last[i])
    del my_list[i]['style']
    del my_list[i]['class']
    del my_list[i]['id']
    del my_list[i]['name']
    for lis in my_list[i]:
        if (type(lis.name) == str):
            del lis['style']
            del lis[ 'class']
            del lis['id']
            del lis['name']
            for li in lis:
                if (type(li.name) == str):
                    del li['style']
                    del li[ 'class']
                    del li['id']
                    del li['name']
然后我将第一个元素添加到此列表中,现在我将所有标记和文本作为一个列表进行清理

   my_list.insert(0, first)
print(my_list)
然后我就有了这样的东西,这正是我想要的

[<h1>text text text </h1>, <p>text text text text text <span></span></p>, <ul>
<li><span>text text text </span></li>
<li><span>text text text text </span></li>
</ul>,...]
循环并将html标记更改为xml标记

 for i in range(len(my_list)):
    for x,y in html_to_xml.items():
        if(my_list[i].name == x ):
            my_list[i].name = y
            
            for lis in my_list[i]:
                if (type(lis.name) == str):
                    for x,y in html_to_xml.items():
                        if(lis.name == x ):
                            lis.name = y
现在我有了一个列表,其中的每个元素都是 “bs4.element.Tag”

这就是我的清单现在的样子

[<header>text text text</header>, <paragraph>text text text text text text text text text <span></span></paragraph>, <list>
<item><span>text text text text </span></item>
<item><span>text text text text text </span></item>
</list>,...]
[文本,文本,
文本文本文本文本
文本文本文本文本文本
,...]
我很高兴,但现在问题来了 我想象现在我有了一个xml标记列表,我可以将它们更正到一个xml文件中,但显然我错了

    textfile = open("text.xml", "w")
    textfile.write('<?xml version="1.0"?>'+ '\n')
    for i in range(len(my_list)):
        textfile.write(my_list[i] )
        textfile.wirte( '\n')
    textfile.close()
textfile=open(“text.xml”、“w”)
textfile.write(“”+’\n’)
对于范围内的i(len(my_列表)):
textfile.write(我的列表[i])
textfile.wirte('\n')
textfile.close()
我得到这个错误:

TypeError:write()参数必须是str,而不是Tag

当我转换字符串中的每个元素并将文件写入xml时,text.xml文件是空的 有人能帮我创建xml文件吗????非常感谢您对我的代码提出的任何改进建议

    textfile = open("text.xml", "w")
    textfile.write('<?xml version="1.0"?>'+ '\n')
    for i in range(len(my_list)):
        textfile.write(my_list[i] )
        textfile.wirte( '\n')
    textfile.close()