BeautifulSoup库-查找方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BeautifulSoup库-查找方法相关的知识,希望对你有一定的参考价值。

参考技术A 主要内容:BeautifulSoup的常用查找方法及参数介绍。

<>.find_all(name,attrs,recursive,string,**kwargs):返回列表类型,存储查找结果,可用于BeautifulSoup对象和标签。

name:对标签名称的检索字符串

attrs:对标签属性进行检索可标注属性检索

recursive:是否对子孙全部索引,默认为True

string:对标签中的字符全区域进行检索

测试字符串:

输出所有<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>]

输出:

http://example.com/elsie

http://example.com/lacie

http://example.com/tillie

输出:

---- [<p class="title"><b>The Dormouse's story</b></p>]

---- [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</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>]

输出:---- [<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>]

---- []

输出:---- ["The Dormouse's story", "The Dormouse's story"]

---- ["The Dormouse's story", "The Dormouse's story"]

补充方法:

<>.find():搜索且只返回第一个找到的结果,参数同find_all()

<>.find_parent():在先辈节点中搜索,返回一个结果,参数同find_all()

<>.find_parents():在先辈节点中搜索,返回列表,参数同find_all()

<>.find_next_sibiling():在后序平行节点中搜索,返回一个结果,参数同find_all()

<>.find_next_sibilings():在后序平行节点中搜索,返回列表,参数同find_all()

<>.find_previous_sibiling():在前序平行节点中搜索,返回一个结果,参数同find_all()

<>.find_previous_sibilings():在前序平行节点中搜索,返回一个列表,参数同find_all()

beautifulsoup 根据class属性查找标签的方法。

 

写爬虫的时候遇到的:

导入beautifulSoup后,

查找类似<div  class = "abcd">的时候,

 

直接使用beautifulsoup的方法:

soup.findall("div", class="abcd")

这样写的时候回报错,

 

按照官方的一种方法写在class后加“_“试了试没什么用。虽说不报错,但返回的时空,匹配不到值,

 

使用另一种方法:

 

soup.findAll(name="div", attrs={"class" :"abcd"}

 

attrs内应该可以加多个键值对,用逗号隔开应该就可以了,

 

以上是关于BeautifulSoup库-查找方法的主要内容,如果未能解决你的问题,请参考以下文章

Beautiful Soup 4库--python2.x(学习日记)

beautifulsoup解析

Beautiful Soup模块

爬虫-Beautiful模块

Beautiful Soup4库文档学习

爬虫-Beautiful Soup模块