2024-04-28 14:05:58 发布
网友
当使用漂亮的soup时,“lxml”与“html.parser”和“html5lib”有什么区别?你什么时候会使用一个比另一个和各自的好处?从我使用它们的时候起,它们似乎是可以互换的,但我确实得到了纠正,我应该使用不同于这里的人的一个。想加强我对这些的理解。我在这里读过几篇关于这个的文章,但是它们根本就没有多大用处。
示例-
soup = BeautifulSoup(response.text, 'lxml')
从docs的优缺点汇总表中:
html.parser-BeautifulSoup(markup, "html.parser")
BeautifulSoup(markup, "html.parser")
优点:包括电池,速度适中,使用方便(从Python2.7.3和3.2开始)。
缺点:不太宽容(在Python 2.7.3或3.2.2之前)
lxml-BeautifulSoup(markup, "lxml")
BeautifulSoup(markup, "lxml")
优点:速度快,宽大
缺点:外部C依赖性
html5lib-BeautifulSoup(markup, "html5lib")
BeautifulSoup(markup, "html5lib")
优点:极为宽松,像web浏览器一样解析页面,创建有效的HTML5
缺点:非常慢,外部Python依赖性
BeautifulSoup文档中强调了关键的区别:
基本的理由是,为什么您希望使用一个解析器而不是其他解析器:
html.parser
html5lib
lxml
从docs的优缺点汇总表中:
html.parser-
BeautifulSoup(markup, "html.parser")
优点:包括电池,速度适中,使用方便(从Python2.7.3和3.2开始)。
缺点:不太宽容(在Python 2.7.3或3.2.2之前)
lxml-
BeautifulSoup(markup, "lxml")
优点:速度快,宽大
缺点:外部C依赖性
html5lib-
BeautifulSoup(markup, "html5lib")
优点:极为宽松,像web浏览器一样解析页面,创建有效的HTML5
缺点:非常慢,外部Python依赖性
BeautifulSoup文档中强调了关键的区别:
基本的理由是,为什么您希望使用一个解析器而不是其他解析器:
html.parser
-内置-不需要额外的依赖项html5lib
-最宽容的-如果HTML被破坏,最好使用它lxml
-最快的相关问题 更多 >
编程相关推荐