[英]Beautiful soup parsing XML incorrectly
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pdf2xml SYSTEM "pdf2xml.dtd">
<page number="1" position="absolute" top="0" left="0" height="1188" width="918">
<text top="301" left="136" width="223" height="17" font="4"><b>– Jul-18 ABC </b></text>
<text top="495" left="136" width="258" height="17" font="4"><b>– Aug-16</b> <b>XYZ </b></text>
</page>
Beautiful Soup using xml/lxml/lxml-xml parser doesn't parse the second <text>
element correctly. 使用xml / lxml / lxml-xml解析器的Beautiful Soup无法正确解析第二个
<text>
元素。 It removes the space between Aug-16
and XYZ
. 它将删除
Aug-16
和XYZ
之间的空间 。 It parses it as 它解析为
<text font="4" height="17" left="136" top="495" width="258"><b>– Aug-16</b> <b>XYZ </b></text>
which isn't correct. 这是不正确的。 I have tried making the soup using
from_encoding="utf-8"
option too. 我也尝试使用
from_encoding="utf-8"
选项制作汤。 None have worked. 没有一个工作。
May you need to try this way, 可能您需要尝试这种方式,
from bs4 import BeautifulSoup
text = """
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pdf2xml SYSTEM "pdf2xml.dtd">
<page number="1" position="absolute" top="0" left="0" height="1188" width="918">
<text top="301" left="136" width="223" height="17" font="4"><b>– Jul-18 ABC </b></text>
<text top="495" left="136" width="258" height="17" font="4"><b>– Aug-16</b> <b>XYZ </b></text>
</page>
"""
soup = BeautifulSoup(text, 'html.parser')
for i in soup.find_all('text'):
print(i.get_text(separator=u' ', strip=False))
#Output as : – Jul-18 ABC
# – Aug-16 XYZ
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.