我有一个MS word文档模板,它具有结构化文档标记,包括重复部分。我正在使用Python脚本来提取重要部分并将它们发送到数据帧。我的脚本在我尝试过的80%的文档上都能正常工作,但我经常失败。问题是在找到第一个重复部分时,我一直在执行以下操作:
from bs4 import BeautifulSoup as BS
soup = BS(f, 'xml') # entire xml; file is called soup
soupdocument=soup.document #document only child node of soup
soupbody=soupdocument.body # body is the only child node of document
ODR=soupbody.contents[5]
这通常是可行的,但是有些用户在文档中未锁定的某些位置按了enter键。我知道这个问题应该通过不选择soupbody的第五个元素来解决
soupbody.find_all({tag})
><w:tag w:val="First Name"/>,
<w:tag w:val="Last Name"/>,
<w:tag w:val="Position"/>,
<w:tag w:val="Phone Number"/>,
<w:tag w:val="Email"/>,
<w:tag w:val="ODR Repeating Section"/>,
上面是返回内容的部分列表,实际列表中有几十个标记,有些重复。我想要的部分是我上面列出的最后一个部分,通常但不总是在第一个代码块中找到。我相信我可以在find_all({tag:SOMETHING}})之后放一个冒号。我尝试过剪切和粘贴“ODR Repeating Section”的所有不同部分,但它不起作用。找到此部分的正确方法是什么
除了标记名之外,是否还指定要搜索的属性
相关问题 更多 >
编程相关推荐