为了账号安全,请及时绑定邮箱和手机立即绑定

使用 BeautifulSoup 遍历 XML 并拉取下一个兄弟

使用 BeautifulSoup 遍历 XML 并拉取下一个兄弟

慕虎7371278 2022-10-18 16:29:04
我已将 PDF 转换为 XML 以便于解析。我的 XML 示例如下:<LTTextLineHorizontal bbox="[58.501, 729.764, 78.501, 737.764]" height="8.0" width="20.0" word_margin="0.1" x0="58.501" x1="78.501" y0="729.764" y1="737.764"><LTTextBoxHorizontal bbox="[58.501, 729.764, 78.501, 737.764]" height="8.0" index="13" width="20.0" x0="58.501" x1="78.501" y0="729.764" y1="737.764">Date: </LTTextBoxHorizontal></LTTextLineHorizontal><LTTextLineHorizontal bbox="[107.249, 730.004, 147.281, 738.004]" height="8.0" width="40.032" word_margin="0.1" x0="107.249" x1="147.281" y0="730.004" y1="738.004"><LTTextBoxHorizontal bbox="[107.249, 730.004, 147.281, 738.004]" height="8.0" index="14" width="40.032" x0="107.249" x1="147.281" y0="730.004" y1="738.004">02/26/2020 </LTTextBoxHorizontal></LTTextLineHorizontal>“日期:”在一行上,下一个兄弟(我认为这就是它的名字)的值是“02/26/2020”。我试过了:from bs4 import BeautifulSoupxml = open("test3.xml").read()soup = BeautifulSoup(xml)print(soup.find(text="Date:").findNext('LTTextLineHorizontal').contents[0])我得到错误:AttributeError: 'NoneType' object has no attribute 'findNext'我的目标是遍历 XML 并提取所需的变量(即日期)并将它们放入数据框中。但我什至还没有走到那一步。输出可能是字典或日期字符串:02/26/2020
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

使用正则表达式re。


import re

from bs4 import BeautifulSoup

xml = open("test3.xml").read()

soup = BeautifulSoup(xml,'lxml')

print(soup.find('lttextboxhorizontal',text=re.compile("Date:")).find_next('lttextboxhorizontal').text)

或者


import re

from bs4 import BeautifulSoup

xml = open("test3.xml").read()

soup = BeautifulSoup(xml,'lxml')

print(soup.find(text=re.compile("Date:")).find_next('lttextboxhorizontal').text)

您可以在没有正则表达式的情况下执行此操作,也可以放置一个空格。


from bs4 import BeautifulSoup

xml = open("test3.xml").read()

soup = BeautifulSoup(xml,'lxml')

print(soup.find(text="Date: ").find_next('lttextboxhorizontal').text)


查看完整回答
反对 回复 2022-10-18
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号