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文檔
打印計較清晰,每個標簽,內容分行顯示。
python爬蟲beautifulsoup