我是BeautifulSoup的新手,我正在學習如何使用它解決我的解析任務。 我的html文件包含許多單獨的文檔,從lexisnexis(法律數據庫)以批量形式下載。我的第一個任務是在其組成文檔中拆分html文件。我認爲這很容易,因爲文檔被<DOC NUMBER=1>body of the 1st document</DOC>
等包圍。然而,這個<DOC>
標籤是一個xml標籤,而不是一個html標籤(文件中的所有其他標籤都是html)。由於這個原因,使用常規的html解析器,該標籤在樹中不可用。我如何在bs4中構建一個解析器來獲取這個xml標籤? 我附上HTML文件的相關部分:如何構建html5lib解析器來處理xml和html標記的混合
<!-- Hide XML section from browser <DOC NUMBER=1> <DOCFULL> --> BODY <!-- Hide XML section from browser </DOCFULL> </DOC> -->
最佳 馬里昂
非常感謝!所以我嘗試過,但我認爲它沒有正確處理它。如果我嘗試使用xml_soup(「doc」),則不返回任何內容,如果嘗試打印(xml_soup.prettify),則會得到一長串文件「/usr/local/lib/python2.7/site-packages/bs4/element .py「,第1021行,解碼 indent_contents,eventual_encoding,格式化程序) 文件」/usr/local/lib/python2.7/site-packages/bs4/element.py「,第1068行,位於decode_contents中 最後被中斷:RuntimeError:在調用Python對象時超出最大遞歸深度 – user2054545 2013-03-30 00:04:50
應該不會發生遞歸錯誤。這可能是bs4中的一個bug如果你正在使用BeautifulSoup3,而不是'xml_soup = BeautifulSoup(xml_object,'xml')',你可以使用bs3的BeautifulStoneSoup。在安裝bs3之後,做:'從BeautifulSoup導入BeautifulStoneSoup'然後'xml_soup = BeautifulStoneSoup(xml_object)' – That1Guy 2013-03-30 03:09:18