lxml 解析巨大深嵌套DOM树的问题
今天客户反映,我们的微信爬虫,有一篇文章的信息不全:问题链接
仔细观察之后,我们发现,这篇文章是由135微信编辑器生成的,正文内容的DOM树非常深,有几百层。
使用 lxml.etree.HTML(text).xp(xpath)进行解析的时候,如果DOM树过深,就解析会提前中止。
在build etree时,调用的是lxml.etree.XMLParser 类,而XMLParser接收 huge_tree=True的参数,允许解析巨大DOM树,而etree.HTML又接收自定义Parser,所以上述代码修改为:
lxml.etree.HTML(text, lxml.etree.XMLParser(huge_tree=True)).xp(xpath)之后,就可以顺利解析了。
相关推荐
cxcxrs 2020-07-28
我欲疾风前行 2020-04-30
learnpy 2020-04-26
RuoShangM 2020-03-23
swiftwwj 2020-02-16
Kwong 2020-01-12
程松 2020-01-01
hilary0 2020-01-03
猛禽的编程艺术 2019-12-31
pythonxuexi 2019-12-20
wklken的笔记 2019-12-17
YGLsmile 2019-12-06
LodbkMi 2019-12-02
爱好HtmlCssJs 2019-11-25
zhaoxiaoheng 2019-11-17
四叶草 2019-11-11
loverlucky 2019-05-10
beichenyx 2019-04-15
MemoryBuffer 2017-08-30