为啥要用lxml
不是说bs4不好,是lxml要比bs4更好,bs4六七行才搞定的事lxml三四行就行了,举个很简单的例子:
这是用bs4写的代码
这是用lxml写的代码:
相比之下是不是lxml代码量少了许多😍?当然它也有让人吐血的地方,比如说我想把a标签提出来找找规律…
这是啥?!它就是用lxml提出来的结果,是不是很无语?这种情况bs4可以完全避免,所以建议两者结合使用
用法浅析
语法
//:提取当前节点的子孙节点(说白了就是忽略位置,提取所有,在提取式的第一个字母前加上就行了)
/:承接上个表达式,比如//div是提取所有div标签,//div/a就是提取div标签中的a标签,//div/a/li就是提取div标签中的a标签的所有li标签
@xxx:提取xxx属性,/方法和//方法它也能用
注意所有的提取式都要加引号,以字符串格式呈现
示例
不做代码的搬运工,这里只放图片
1,提取彼岸图网所有文本内容
2,提取所有图片链接
结语
真的,小编将所有优质代码都开源在github,在那你会解锁许多没见过的玩法,地址如下