Spider-2

181 阅读1分钟

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文档的值
  • 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