我正在尝试解析 https://api.lever.co/v0/postings/matchgroup?mode=xml 但我收到错误
lxml.etree.XMLSyntaxError: CData section not finished
。看来问题是由包含韩国字符的数据引起的。
import lxml.etree
import io
import requests
url = "https://api.lever.co/v0/postings/matchgroup?mode=xml"
r = requests.get(url)
f = io.BytesIO(r.content)
parser = lxml.etree.XMLParser(recover=False)
tree = lxml.etree.parse(f,parser) # Raises lxml.etree.XMLSyntaxError
我可以将恢复更改为
True
,但这样一些条目就会丢失。
在这种情况下,文件由于不可打印的
x08
字符 (^H
) 而损坏
修复它:
f = io.BytesIO(r.content.replace(b"\x08", b""))