如何从废弃的html页面(python)生成(然后写入)xml文件
我正在使用一个通用刮板,它可以刮取给定的页面,因此我得到了我想要的页面部分,即class.entry-content如何从废弃的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
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()