ITPub博客

首页 > 数据库 > 数据库开发技术 > #PY小贴士# BeautifulSoup的解析器选择

#PY小贴士# BeautifulSoup的解析器选择

原创 数据库开发技术 作者:Crossin的编程教室 时间:2020-01-03 14:33:03 0 删除 编辑

关于解析网页内容的工具 BeautifulSoup,我们之前做过介绍:

网页解析器 BeautifulSoup 上手教程

做爬虫获取网页信息,我推荐使用 bs4,比 xpath 更人性化些。


有爬虫课的同学在用 bs4 时遇到个问题:

网页拿下来是有内容的(成功获取了页面),在里面用 str 的 find 方法也能搜索到相关信息,但用 bs4 来提取就是提取不出。


后来帮他 debug 了一番,发现原因是对方网页里的 HTML 代码写得不规范,中间多了个 </html>,导致解析时认为网页已经结束,把后面的内容都截断了。


关于这一点,我们上面给的那篇文章里其实有提到:

html.parse - python 自带,但容错性不够高,对于一些写得不太规范的网页会丢失部分内容

lxml - 解析速度快,需额外安装

xml - 同属 lxml 库,支持 XML 文档

html5lib - 最好的容错性,但速度稍慢

把解析器参数换成容错度最高的 html5lib,就没这个问题了。对于一些不规范的网页很有用,但代价是解析速度会略有所下降。




在 #PY小贴士#里,我们会分享一些 python 知识点、开发中的小技巧、容易踩到的坑,以及学员遇到并在群里提到真实问题。篇幅尽量短小,适合碎片时间阅读,欢迎关注!


如果你在编程学习中有疑问,可选择以下方式向我们提问:

1. 加入码上行动答疑群(最及时响应)

2. 加入知识星球 https://t.zsxq.com/IiAiiQj

3. 发微博加上 #编程教室# 并 @Crossin(非私信)

提问时请表述清楚,附上必要代码、输出等截屏。


也可向本栏目投稿,分享你开发中的经验。采纳后将署名发表,并可附上个人博客、公众号、Github等介绍。




原文作者:Crossin的编程教室;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2015-06-05

  • 博文量
    498
  • 访问量
    200513