BeautifulSoup搜尋節點的幾種方法

2021-10-07 14:43:44 字數 1521 閱讀 3898

搜尋文件樹,一般用得比較多的就是兩個方法,乙個是find,乙個是find_allfind方法是找到第乙個滿足條件的標籤後就立即返回,只返回乙個元素。find_all方法是把所有滿足條件的標籤都選到,然後返回回去。使用這兩個方法,最常用的用法是出入name以及attr引數找出符合要求的標籤。

soup.find_all("a",attrs=)
或者是直接傳入屬性的的名字作為關鍵字引數:

soup.find_all("a",id='link2')
使用以上方法可以方便的找出元素。但有時候使用css選擇器的方式可以更加的方便。使用css選擇器的語法,應該使用select方法。以下列出幾種常用的css選擇器方法:

(1)通過標籤名查詢:

print(soup.select('a'))
(2)通過類名查詢:

通過類名,則應該在類的前面加乙個.。比如要查詢class=sister的標籤。示例**如下:

print(soup.select('.sister'))
(3)通過id查詢:

通過id查詢,應該在id的名字前面加乙個#號。示例**如下:

print(soup.select("#link1"))
(4)組合查詢:

組合查詢即和寫 class 檔案時,標籤名與類名、id名進行的組合原理是一樣的,例如查詢 p 標籤中,id 等於 link1的內容,二者需要用空格分開:

print(soup.select("p #link1"))
直接子標籤查詢,則使用 > 分隔:

print(soup.select("head > title"))
(5)通過屬性查詢:

查詢時還可以加入屬性元素,屬性需要用中括號括起來,注意屬性和標籤屬於同一節點,所以中間不能加空格,否則會無法匹配到。示例**如下:

print(soup.select('a[href=""]'))
(6)獲取內容

以上的 select 方法返回的結果都是列表形式,可以遍歷形式輸出,然後用 get_text() 方法來獲取它的內容。

soup = beautifulsoup(html, 'lxml')

print type(soup.select('title'))

print soup.select('title')[0].get_text()

for title in soup.select('title'):

print title.get_text()

BeautifulSoup常用方法

1.初始化 2.查詢指定標籤 eg 要找到符合的所有標籤 p.findall div 反覆利用標籤特徵可以找到最終需要的標籤 3.直接加標籤名可以找到所有子標籤 eg 找到所有標籤 p.td 4.直接以字典形式,可以訪問標籤內對應屬性的值 eg 要找到 中href 的值 www.csdn.net p...

BeautifulSoup學習筆記

prettify 將html 格式化 get text 獲得所有文字內容 contens 返回所有子節點 children 返回子節點生成器 descendants 返回所有子孫節點的生成器 strings 返回包含的多個字串的生成器 stripped strings 返回包含的多個字串 去除多餘空...

爬蟲 BeautifulSoup 模組

二 根據這個dom樹就可以按照節點的名稱 屬性和文字搜尋節點 find all 方法會搜尋出所有滿足要求的節點,find 方法只會搜尋出第乙個滿足要求的節點 兩個方法的引數一模一樣 三 得到節點以後,就可以訪問它的名稱 屬性 文字。a為標籤名稱 超連結 href,class為屬性,顯示在頁面上的是p...