日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BeautifulSoup 用法总结

發布時間:2025/3/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 用法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。