我有一个大的HTML源代码我想解析(~200,000)行,我相当确定整个格式都很差 . 我一直在研究一些解析器,似乎Beautiful Soup,lxml,html5lib是最受欢迎的 . 从阅读这个网站,似乎lxml是最常用和最快的,而美丽的汤比较慢,但会导致更多的错误和变化 .
我对Beautiful Soup文档http://www.crummy.com/software/BeautifulSoup/bs4/doc/以及BeautifulSoup(标记,"lxml")或BeautifulSoup(标记,html5lib)等命令感到有些困惑 . 在这种情况下,它使用Beautiful Soup和html5lib / lxml?速度在这里不是一个问题,但准确性是 . 最终目标是使用urllib2解析获取源代码,并从文件中检索所有文本数据,就像我只是复制/粘贴网页一样 .
附:无论如何解析文件而不返回网页视图中不存在的任何空格?
1 回答
我的理解(将BeautifulSoup用于少数事情)是它是lxml或html5lib等解析器的包装器 . 使用指定的解析器(我相信默认是HTMLParser,python的默认解析器),BeautifulSoup创建一个标记元素树,这样可以很容易地导航和搜索HTML以查找标记内的有用数据 . 如果您确实需要网页中的文字而不是特定HTML标记中的特定数据,则可能只需要与此类似的代码段:
get_text对于复杂的网页来说并不是那么好(偶尔会有随机的javascript或css),但是如果你对如何使用BeautifulSoup感兴趣,那么获取你想要的文本并不难 .
出于您的目的,您似乎不必担心让其他解析器与BeautifulSoup(html5lib或lxml)一起使用 . BeautifulSoup本身可以处理一些邋,,如果不能,它会给出“格式错误的HTML”或类似的东西的明显错误,这将是安装html5lib或lxml的指示 .