BeautifulSoup解析器的选择
BeautifulSoup解析器
在我们使用BeautifulSoup的时候,选择怎样的解析器是至关重要的。使用不同的解析器有可能会出现不同的结果!
今天遇到一个坑,在解析某html的时候。使用html.parser解析器自己将table标签截断了(当然这与html本身有直接关系)
原html如下
排序 |
中标候选人名称 |
投标报价 |
质量 |
工期/交货期 |
1 |
西安大唐电信有限公司 |
RMB8,029,283.00元 |
合格 |
满足招标文件要求 |
2 |
|
|
|
|
3 |
|
|
|
|
渲染效果为
|
排序 |
中标候选人名称 |
投标报价 |
质量 |
工期/交货期 |
|
1 |
西安大唐电信有限公司 |
RMB8,029,283.00元 |
合格 |
满足招标文件要求 |
|
2 |
|
|
|
|
|
3 |
|
|
|
|
但是使用html.parser解释器的话html修改为了
排序 |
中标候选人名称 |
投标报价 |
质量 |
工期/交货期 |
1 |
西安大唐电信有限公司 |
渲染效果为
|
排序 |
中标候选人名称 |
投标报价 |
质量 |
工期/交货期 |
|
1 |
西安大唐电信有限公司 |
BeautifulSoup官方推荐使用lxml
推荐使用lxml作为解析器,因为效率更高. 在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必须安装lxml或html5lib, 因为那些Python版本的标准库中内置的HTML解析方法不够稳定.
提示: 如果一段HTML或XML文档格式不正确的话,那么在不同的解析器中返回的结果可能是不一样的,查看 解析器之间的区别 了解更多细节

浙公网安备 33010602011771号