周所周知,bs4和lxml是非常流行的两个python模块,他们常被用来对抓取的网页进行解析,以便进一步抓取的进行。作为一个爬虫爱好者,今天我来讲讲这两个各自的优点和不足,不对的地方还请各位大神斧正。
BeautifulSoup
BeautifulSoup也是比较常用且使用简单的技术,由于在操作过程中,会将整个文档树进行加载然后进行查询匹配操作,使用过程中消耗资源较多。
- 对象结构
- Tag:标签对象
- NavigableString:字符内容操作对象
- BeautifulSoup:文档对象
- Comment:特殊类型的NavigableString
Tag
tag有2个重要属性,Name和Attributes,name可直接用.name来获取。Attributes属性可以用.attrs获取或者类似字典获取方式。
NavigableString
表示装tag中的字符串, unicode()
方法可以直接将 NavigableString
对象转换成Unicode字符串
Comment
是一个特殊类型的 NavigableString
对象
… 太多了暂停下
lxml
lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高
re正则表达式
匹配神器,速度快效率高