Beautiful Soup的使用
1.下載
pip install bs4
pip install lxml # 解析器 官方推薦
2.引用方法
from bs4 import BeautifulSoup # 引入我們的主題
3.解析原理
- 實例化一個BeautifulSoup的對象,並且將即將被解析的頁面源碼數據加載到該對象中
- 調用BeautifulSoup對象中的相關屬性和方法進行標簽定位和數據提取
4.使用方法
將一段文檔傳入BeautifulSoup 的構造方法,就能得到一個文檔的對象, 可以傳入一段字符串或一個文件句柄
soup = BeautifulSoup(open("index.html"),'lxml') # 文件句柄
soup = BeautifulSoup("<html>data</html>",'lxml') # 網頁源數據
-
tag
純標簽定位
soup.tagName:定位到第一個TagName標簽,返回的是單數屬性定位
屬性定位:soup.find('tagName',attrName='value'),返回也是單數(第一個元素) find_all:和find用法一致,但是返回值是列表 注:attrname中查詢class字段為class_,id為id -
selector
返回值為列表
選擇器定位:select('選擇器') 返回值類型為bs4.element.ResultSet 標簽,類,id,層級(>:一個層級,空格:多個層級) -
提取數據
- 取文本
- tag.string:標簽中直系的文本內容
- tag.text:標簽中所有的文本內容
- 取屬性
- tag['attrName']
- 取文本
5.注意事項
只有bs4.element.Tag對象才擁有上述的方法和屬性,select返回的對象集合是不具有該屬性和方法,通過索引拿到對應的Tag對象才能進行數據提取操作
