python3解析库BeautifulSoup4的安装配置与基本用法

  

  

Beautiful Soup是python的一个HTML或XML的解析库,我们可以用它来方便的从网页中提取数据,它拥有强大的API和多样的解析方式。

  

<强> Beautiful Soup的三个特点:

  
      <李> Beautiful Soup提供一些简单的方法和python式函数,用于浏览,搜索和修改解析树,它是一个工具箱,通过解析文档为用户提供需要抓取的数据李   <李> Beautiful Soup自动将转入稳定转换为Unicode编码,输出文档转换为utf - 8编码,不需要考虑编码,除非文档没有指定编码方式,这时只需要指定原始编码即可李   <李> Beautiful Soup位于流行Python的解析器(如lxml和html5lib)之上,允许您尝试不同的解析策略或交易速度以获得灵活性。   
  

  

美丽Soup4通过PyPi发布,所以可以通过系统管理包工具安装,包名字为beautifulsoup4

  
  

美元easy_install beautifulsoup4
  或者
  美元pip安装beautifulsoup4
  

     

也可用通过下载源码包来安装:

        # wget https://www.crummy.com/software/BeautifulSoup/bs4/download/4.0/beautifulsoup4-4.1.0.tar.gz   # tar xf beautifulsoup4-4.1.0.tar.gz   # cd beautifulsoup4   # python设置。py安装      

美丽汤在解析时实际上是依赖解析器的,它除了支持python标准库中的HTML解析器外还支持第三方解析器如lxml

  

Beautiful Soup支持的解析器,以及它们的优缺点:

  

           解析器   使用方法   优势   劣势               Python标准库   BeautifulSoup(标记、“html.parser”)      

      <李> Python的内置标准库李   <李>执行速度适中李   <李>文档容错能力强李   
        
      <李> Python 2.7.3或3.2.2)前的版本中文档容错能力差李   
           lxml HTML解析器   BeautifulSoup(标记、“lxml”)      
      <李>速度快李   <李>文档容错能力强李   
        
      <李>需要安装C语言库李   
           lxml XML解析器      

BeautifulSoup(标记,“lxml”,“xml”)

  

BeautifulSoup(标记、“xml”)

        
      <李>速度快李   <李>唯一支持XML的解析器李   
        
      <李>需要安装C语言库李   
           html5lib   BeautifulSoup(标记、“html5lib”)      
      <李>最好的容错性李   <李>以浏览器的方式解析文档   <李>生成HTML5格式的文档   
        
      <李>速度慢李   <李>不依赖外部扩展李   
              

  

安装解析器:

        pip安装lxml美元   美元pip安装html5lib      

推荐使用lxml作为解析器,因为效率更高。在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必须安装lxml或html5lib,因为那些Python版本的标准库中内置的HTML解析方法不够稳定

  

  

通过传入一段字符或一个文件句柄,BeautifulSoup的构造方法就能得到一个文档的对象,选择合适的解析器来解析文档,如手动指定将选择指定的解析器来解析文档,Beautiful Soup将复杂的HTML文档转换成一个复杂的树形结构,每个节点都是python对象,所有对象可以归纳为4种:标签,NavigableString, BeautifulSoup、评论

  

BeautifulSoup版本4的包是在bs4中引入的

        从bs4进口BeautifulSoup      #下面代码示例都是用此文档测试   html_doc=" "   & lt; html> & lt; head> & lt; title>榛睡鼠的story & lt;/head>   & lt; body>   & lt; p类="标题"祝辞& lt; b>榛睡鼠的story & lt;/p>      类& lt; p=肮适隆痹诖忧坝腥鲂〗忝?和他们的名字分别是   & lt; a href=" http://example.com/elsie " rel=巴獠縩ofollow”class="妹妹" id=發ink1”祝辞Elsie   & lt; a href=" http://example.com/lacie " rel=巴獠縩ofollow”class="妹妹" id=發ink2”祝辞Lacie和   & lt; a href=" http://example.com/tillie " rel=巴獠縩ofollow”class="妹妹" id=發ink3”祝辞Tillie;   他们住在井底。;/p>      & lt; p类="故事"在……& lt;/p>   ”“”   标记=" & lt; b> & lt; !——嘿,老兄。想买一个使用解析器# 63;——祝辞& lt;/b>”   汤=BeautifulSoup (html_doc“lxml”)   soup1=BeautifulSoup(标记、“lxml”)   标签=soup.a   navstr=tag.string   评论=soup1.b.string   打印(类型(标签))#标签标签对象   打印(类型(评论))#评论对象包含文档注释内容   打印(类型(navstr)) # NavigableString对象包装字符串内容   打印(类型(汤))# BeautifulSoup对象为文档的全部内容      #   & lt;类“bs4.element.Tag”比;   & lt;类“bs4.element.Comment”比;   & lt;类“bs4.element.NavigableString”比;   & lt;类bs4.BeautifulSoup的祝辞

python3解析库BeautifulSoup4的安装配置与基本用法