zoukankan      html  css  js  c++  java
  • python爬虫beautifulsoup

    1、BeautifulSoup库,也叫beautifulsoup4或bs4

      功能:解析HTML/XML文档

    2、HTML格式

      成对尖括号构成

    3、库引用

    #bs4为简写,BeautifulSoup为其中一个类
    from bs4 import BeautifulSoup
    #直接引用库
    import bs4

    3.1、BeautifulSoup类

      >>from bs4 import BeautifulSoup

      >>soup=BeautifulSoup("<html>data</html>","html.parser")

      >>soups=BeautifulSoup(open("D://demo.html"),"html.parser")

      可以直接操作源码,也可以操作文件

      3.1、html.parser为bs4的html解析器,安装了bs4库即可使用

         lxml为lxml的HTML解析器,安装lxml

         xml为lxml的xml解析器,安装lxml

         html5lib为html5lib的解析器,安装html5lib

      3.2、基本元素

        3.2.1、Tag:标签,最基本信息组织单元,分别用<>和</>标明开头和结尾

        3.2.2、Name:标签的名字,<p>...</p>,格式:<tag>.attrs

        3.2.3、Attributes:标签的属性,字典形式的组织,格式<tag>.attrs

        3.2.4、NavigableString:标签内非属性字符串,<>...</>中字符串,格式<tag>.string

        3.2.5、Comment:标签内字符串的注释部分,一种特殊的Comment类型

      3.3、标签遍历

        3.3.1、下行遍历

            .contents:返回列表类型

            .children:返回迭代类型,智能用在for循环语句中

            .descendants:返回迭代类型,智能用在for循环语句中

        3.3.2、上行遍历

            .parent:返回当前节点的父亲节点

            .parents:返回当前节点所有先辈节点

        3.3.3、平行遍历

            .next_sibling

            .previous_sibing

            .next_siblings:迭代类型

            .previous_siblings:迭代类型

    4、html格式输出

      python3.x系列支持的是utf-8编码,bs4库支持utf-8编码,如果使用python2.x需要编码转化  

      >>soup=BeautifulSoup(demo,"html.parser")

      >>print(soup.prettify())

      demo为HTML文档

      打印计较清晰,每个标签,内容分行显示。

  • 相关阅读:
    react_瞎敲
    linux 删除类似文件
    mysql建立dblink 视图,无法查询到数据的问题
    Guava-Retrying 请求重试机制
    Command line is too long. Shorten command line for WebServiceUtilsTest.callMethod or also for JUnit default
    @Scheduled 定时任务注解不能运行
    jq拷贝表单$("#searchForm").clone(true),无法将select2数据value拷贝的问题
    正则表达式的lookaround(lookahead/lookbehind)以及密码复杂度检查
    MYSQL列的长度,NUMERIC_PRECISION和COLUMN_TYPE
    Qira-docker安装与使用
  • 原文地址:https://www.cnblogs.com/oldhuang/p/10332104.html
Copyright © 2011-2022 走看看