BeautifulSoup庫整理


BeautifulSoup庫

一.BeautifulSoup庫的下載以及使用

1.下載

pip3 install beautifulsoup4

2.使用

improt bs4

二.BeautifulSoup庫解析器

解析器 使用方法 優勢 劣勢
bs4的HTML解析器 BeautifulSoup(mk,'html.parser') Python 的內置標准庫
執行速度適中
文檔容錯能力強
Python 2.7.3 or 3.2.2)前 的版本中文檔容錯能力差
lxml的HTML解析器 BeautifulSoup(mk,'lxml') 速度快
文檔容錯能力強
需要安裝C語言庫
lxml的XML解析器 BeautifulSoup(mk,'xml') 速度快
唯一支持XML的解析器
需要安裝C語言庫
html5lib解析器 BeautifulSoup(mk,'html5lib') 最好的容錯性
以瀏覽器的方式解析文檔
生成HTML5格式的文檔
速度慢

條件 :

  • bs4的HTML解析器:安裝bs4庫

  • lxml的HTML解析器:pip3 install lxml

  • lxml的XML解析器:pip3 install lxml

  • html5lib解析器:pip3 install html5lib

三.BeautifulSoup類的5種元素

基本元素 簡單說明 詳細說明
tag 標簽 分別用<>與</>來表示開頭和結尾
name 標簽的名字 用法:<tag>.name輸出為字符串的形式
attributes 標簽里的屬性 用法:<tag>.attrs輸出為字典的形式
navigablestring 標簽里的內容 用法:<tag>.string可以跨域多個標簽層次
comment 標簽里面的注釋 一種特殊的comment類型
  • 獲取標簽方法,解析后的網頁.標簽的名字,如果同時存在多個標簽只取第一個
  • 獲取標簽的父標簽<tag>.parent
  • <tag>表示標簽
  • 當標簽為沒有屬性的時候,我們獲得的是個空字典

四.標簽樹向下遍歷

  • .contens:子節點列表,不僅僅包括標簽節點,也包括字符串節點例如\n
  • .children:子節點的迭代器類型也包括字符串節點例如\n
  • descendants:子孫節點的迭代類型也包括字符串節點例如\n

五.標簽樹向上遍歷

  • .parent:節點的父親標簽
  • .parents:節點先輩標簽的迭代器類型

注意:如果是html的父標簽就是他自己,soup本身也是種特殊的標簽的他的父標簽是空

六.標簽樹平行遍歷

  • .next_sibling:下一個平行標簽
  • .previous_sibling:上一個平行標簽
  • .next_silbings:迭代器類型,向下所有標簽
  • .previous_silbling:迭代器類型,向上所有標簽

注意:必須在同一個父節點下才有平行關系,平行遍歷獲得的對象不一定是標簽,也可能是文本,如果上下沒來就為空

七.prettify使得解析后頁面更加好看

解析后的頁面

prettify():會把解析的網頁加上\n的文本文檔,能使它打印變得更加好看


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM