BeautifulSoup 用法总结
生活随笔
收集整理的這篇文章主要介紹了
BeautifulSoup 用法总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
介紹
簡介
BeautifulSoup 是一個可以從HTML或XML文件中提取數據的Python庫
安裝
pip install beautifulsoup4解析器
Beautiful Soup支持Python標準庫中的HTML解析器(’html.parser’),還支持一些第三方的解析器,比如lxml,推薦用后者,純C實現的,速度更快:
pip install lxml引入及容錯處理
from bs4 import BeautifulSoupsoup=BeautifulSoup(html_doc,'lxml') soup=soup.prettify() #容錯處理===>自動補全代碼選擇器
一個html是一個對象,對象可以嵌套對象;每個soup對象下的每一個標簽,也都是對象。
標簽選擇器
- 標簽選擇器:即直接通過標簽名字選擇,選擇速度快,如果存在多個相同的標簽則只返回第一個:soup.head # soup.tag
- 鏈式選擇:soup.parentTag.childTag
標準選擇器
find與find_all方法: 可根據標簽名,屬性,內容查找文檔,但是find只找第一個元素。
- 按照標簽名查找:soup.find(name='div')
- 按照屬性查找:soup.find(name='div', attrs={'id': 'aritcle-body'})
- 按照文本內容查找:soup.find(text='xxxxxxx')按照完整內容匹配(是==而不是in),得到的結果也是內容
CSS選擇器
通過select方法來選擇,支持CSS選擇的器的所有方式,在此不詳述。
- soup.select('.myclass span') 通過class屬性選擇
- soup.select('#article-body') 通過id選擇
關聯查找
- 子節點、子孫節點:
- 子節點:soup_obj.contents 返回列表;soup_obj.children返回迭代器
- 子孫節點:soup_obj.descendants
- 父節點、祖先節點:soup_obj.parent父節soup_obj.parents祖先節點
- 兄弟節點:soup_obj.next_siblings;soup_obj.previous_siblings
常用屬性和方法
- 獲取標簽的名稱:soup_obj.name
- 獲取標簽的屬性:soup_obj.attrs 返回所有屬性的字典;soup_obj.get('href')獲取具體屬性的值
- 獲取標簽的內容:soup_obj.string;soup.tag.text
- 清空內部元素,保留當前標簽:soup_obj.clear()
- 清空,包括自己:soup_obj.decompose
- 同上,但是有返回值:soup.extract()
- 正則查找:rep = re.comiple('^p'),soup.find_all (name=rep)
總結
以上是生活随笔為你收集整理的BeautifulSoup 用法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wpf template的code写法
- 下一篇: 歪枣网后台设计