BeautifulSoup中的select方法
阿新 • • 發佈:2017-11-23
title -- span sel 不能 com class spa alt
在寫css時,標簽名不加任何修飾,類名前加點,id名前加 #,我們可以用類似的方法來篩選元素,用到的方法是soup.select(),返回類型是list。
(1).通過標簽名查找
print(soup.select(‘title‘)) # [<title>The Dormouse‘s story</title>] print(soup.select(‘a‘)) # [<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]print(soup.select(‘b‘)) # [<b>The Dormouse‘s story</b>]
(2).通過類名查找
print soup.select(‘.sister‘) # [<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
(3).通過id名查找
print soup.select(‘#link1‘) #[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]
(4).組合查找
組合查找即和寫class文件時,標簽名與類名、id名進行的組合原理是一樣的,例如查找p標簽中,id等於link1的內容,二者需要空格分開。
print soup.select(‘p #link1‘) #[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]
直接子標簽查找
print soup.select("head > title") #[<title>The Dormouse‘s story</title>]
(5).屬性查找
查找時還可以加入屬性元素,屬性需要用中括號括起來,註意屬性和標簽屬於同一節點,所以中間不能加空格,否則會無法匹配到。
print soup.select("head > title") #[<title>The Dormouse‘s story</title>] print soup.select(‘a[href="http://example.com/elsie"]‘) #[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]
屬性仍然可以與上述查找方式組合,不在同一節點的空格隔開,同一節點的不加空格。
print soup.select(‘p a[href="http://example.com/elsie"]‘) #[<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]
BeautifulSoup中的select方法