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)之後,就可以順利解析了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章