BeautifulSoup庫整理

BeautifulSoup庫

一.BeautifulSoup庫的下載以及使用

1.下載

pip3 install beautifulsoup4html

2.使用

improt bs4html5

二.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 lxmlcode

  • lxml的XML解析器:pip3 install lxmlxml

  • html5lib解析器:pip3 install html5libhtm

三.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:迭代器類型,向上全部標籤

注意:必須在同一個父節點下才有平行關係,平行遍歷得到的對象不必定是標籤,也多是文本,若是上下沒來就爲空ip

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

解析後的頁面文檔

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

相關文章
相關標籤/搜索