BeautifulSoup中的select方法
Posted 做梦当财神
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BeautifulSoup中的select方法相关的知识,希望对你有一定的参考价值。
在写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方法的主要内容,如果未能解决你的问题,请参考以下文章
选择合适的标签传递给 BeautifulSoup 的 select 方法
python爬虫:BeautifulSoup 使用select方法详解