BeautifulSoup

21 BeautifulSoup类的find_all()方法的name属性的用法
文章目录
21 BeautifulSoup类的find_all()方法的name属性的用法
1. BeautifulSoup类的方法选择器的概括
2. find_all()方法的作用及范围
3. find_all()方法的语法格式
4. find_all方法的name参数
4.1. name参数=标签名=字符串
4.2. name=正则表达式='^b'
`^`符合的输入方法
代码演示
正则表达式和for循环的综合运用
4.3. 列表
4.4. True
name= True和for循环的综合运用
5. 总结
1. BeautifulSoup类的方法选择器的概括
前面我们学习了BeautifulSoup类的节点选择器和CSS选择器两种方法来提取html代码中的数据。
这两种选择方法都是通过标签或属性来进行选择。
这两种选择方法的优点是快。
缺点是在复杂的html代码中,这两种选择方法都无法精准定位到具体的元素。

【例如】

<a href="http://example.com/python" class="sister" id="link1"><span>python学习网</span></a>        
<a href="http://example.com/java"   class="sister" id="link2"><span>java学习网</span></a>            
<a href="http://example.com/html"   class="sister" id="link3"><span>html学习网</span></a>    
1
2
3
上述代码中出现了3个a标签。
通过标签或属性我们无法精准定位到第2个或第3个a标签。
如果我们要提取第2个或第3个a标签里的内容我们可以利用BeautifulSoup类中的find_all或find方法,通过向方法传入参数的方式来进行精准定位。

BeautifulSoup类提供的方法选择器中有许许多多的方法,如下图所示:

【温馨提示】

前面第1个符合条件的兄弟节点和前面第1个符合条件的节点是有区别的。
前1个兄弟节点和前1个节点有时候可能是同一个节点。

上图中,我们可以看到总共有12种选择方法。
这12种选择方法他们的用法都是一样的,只不过提取数据的范围会不同。

这里我们重点学习find_all及find方法。
我们将这两个方法学会以后,其它方法在你需要的时候直接去调用就行。
他们参数的位置以及参数的方法都和find_all及find方法都是一样的。

2. find_all()方法的作用及范围
find_all:查找全部。

【作用】搜索当前节点下所有符合条件的节点。
【范围】当前节点下的所有节点。如果没有指定当前节点,则进行全文检索。

【温馨提示】

使用find_all方法通常需要指定当前节点。

3. find_all()方法的语法格式
find_all (name, attrs, recursive, text, **kwargs)

find_all()方法有5个参数:
参数1.name
参数2.attrs
参数3.recursive
参数4.text
参数5.**kwargs

4. find_all方法的name参数


name参数的作用:查找所有名字为name的标签。

例如:name=‘span’
将标签名span作为参数传入find_all方法中,BeautifulSoup会查找与标签名span完全匹配的内容。

name参数一共有4种形式:
1.字符串
2.正则表达式
3.列表
4.True

4.1. name参数=标签名=字符串
当name参数传入的是字符串类型即标签名称的时候,BeautifulSoup会查找与标签名完全匹配的内容。

# 声明一个字符串变量存储HTML代码
html_str = """
<html>
    <head>
        <title>学习网址</title>
    </head>
    <body>
        <p class="story">
            这里有3个网址,他们分别是:
            <a href="http://example.com/python"  class="sister" id="link1"><span>python学习网</span></a>        
            <a href="http://example.com/java"  class="sister" id="link2"><span>java学习网</span></a>           
            <a href="http://example.com/html" class="sister" id="link3"><span>html学习网</span></a>
        </p>
        <p>
        <li class="element">本是青灯不归客</li>
        <li class="element">却因浊酒留风尘</li>
        <li class="element">终是庄周梦了蝶</li>
        <li class="element">你是恩赐也是劫</li>  
        </p>
    </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值