爬虫基础三部曲之二 – 解析网页:BeautifulSoup模块使用详解

Tag

Tag是BeautifulSoup解析HTML内容最重要的部分,对HTML树形结构解析的最终归宿都是一个节点,即一个标签(Tag).
Tag有很多方法和属性, 但最主要的是三个部分,1)名字name, 2) 属性 attrs, 3) 内容string

1) name
每一个Tag都有自己的name,使用.name 可以获取name.

from bs4 import BeautifulSoup

html = '''
<html><head><title>Hello world</title></head>
'''
soup = BeautifulSoup(html,'html.parser') 
print(soup.title.name)  #选择title节点,获取name

2) attrs

from bs4 import BeautifulSoup

html = '''
<ul>
    <li class="item-0" name="one"><a href="www.baidu.com">baidu</a>
'''
soup = BeautifulSoup(html,'html.parser')
print(soup.li.attrs)#获取所有属性,返回字典
print(soup.li.attrs['class'])#获取li节点的class属性值
print(soup.li['class'])#获取li节点的class属性值,更加简洁的写法,推荐写法
print(soup.li.get('class'))#获取li节点的class属性值
print(soup.li['name'])#获取li节点的name属性值,推荐写法

我们可以使用.attr 获取到Tag对象的所有属性值,返回的是字典格式,所有可以使用[‘key’] 来获取指定的属性值。简单一点我们也可以省略attrs,直接使用tag[‘key’] 来获取。

3) string
可以使用string属性获取节点包含的文本内容。

from bs4 import BeautifulSoup

html = '''
<ul>
    <li class="item-0" name="one"><a href="www.baidu.com">baidu</a>
    <li class="item-1" name="two"><a href="www.alibaba.com">alibaba</a>
'''
soup = BeautifulSoup(html,'html.parser')
print(soup.a.string) #baidu & alibaba

BS4最主要的工作在于帮助我们快速方便准确的找到目标节点,主要有以下几种方式。

直接选择节点

关联树选择节点

全局搜索

CSS选择器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值