LXML库
- python的HTML/XML的解析器
- 文档:lxml.de/index.html
- 功能:
- 解析HTML
- 文件读取
- etree和XPath的配合使用
BeautifulSoup4 CSS选择器
-
几个常用提取信息工具的比较:
- 正则:很快,不好用,不需安装
- beautifulsoup:慢,使用简单,安装简单
- lxml:比较慢,使用简单,安装一般
-
四大对象
- Tag
- 对应Html中的标签
- 可以通过soup.tag_name
- tag两个重要属性
- name
- attrs
- Navigablestring
- 获取标签内部的文字
- BeautifulSoup
- 表示的是一个文档的内容,大部分可以把它当做tag对象
- Comment
- 特殊类型的Navigablestring对象
- 对其输出不包括注释符号
- 遍历文档对象
- contents:tag的子节点以列表的方式输出
- children:子节点以迭代形式返回
- descendants:所有子孙节点
- string
- 搜索文档对象
- find_all(name,attrs,recursive,text,**kwargs)
- name:按照哪个字符串搜索,可以传入的内容为
- 字符串
- 正则表达式
- 列表
- keyword参数,可以用来表示属性
- text:对应tag文档的值
- name:按照哪个字符串搜索,可以传入的内容为
- find_all(name,attrs,recursive,text,**kwargs)
- Tag
-
CSS选择器
- 使用soup.select,返回一个列表
- 通过标签名:soup.select("title")
- 通过类名:soup.select(".content")
- id查找:soup.select("#name_id")
- 组合查找:soup.select("div #input_content")
- 属性查找:soup.select("img[class='photo']")
- 获取tag内容:tag.get_text