BeautifulSoup库的学习(2):BeautifulSoup库的基本元素

1. BeautifulSoup库的理解

BeautifulSoup库是解析、遍历、维护“标签树”的功能库。
在这里插入图片描述
在这里插入图片描述

BeautifulSoup库的引用
BeautifulSoup库,也叫beautifulsoup4或bs4

在python中引用需加入下面代码:

from bs4 import BeautifulSoup
# 或
import bs4

2. BeautifulSoup库的解析器

在这里插入图片描述

3. Beautiful Soup类的基本元素

基本元素说明
Tag标签,最基本的信息组织单元,分别用<>和<>标明开头和结尾
Name标签的名字,< p >…< /p >的名字是’p’,格式:< tag >.name
Attributes标签的属性,字典形式组织,格式:< tag >.attrs
NavigableString标签内非属性字符创,<>…</>中字符串,格式:< tag >.string
Comment标签内字符串的注释部分,一种特殊的Comment类型

在这里插入图片描述

4. 使用代码获取HTML基本元素

依旧使用demo.html网页,网址:https://python123.io/ws/demo.html

from bs4 import BeautifulSoup
import requests

url = 'https://python123.io/ws/demo.html'
r = requests.get(url)
demo = r.text
soup = BeautifulSoup(demo, 'html.parser')
print(soup)

print(soup.title)   # 得到title标签  <title>This is a python demo page</title>

tag = soup.a        # 得到a标签  <a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a>
print(tag.name)     # 得到a标签的名字 a

print(tag.parent.name)  # 得到a标签父亲的名字,即上一层标签 p
print(tag.parent.parent.name)   # 再上一层的名字 body

# 得到标签的属性信息
print(tag.attrs)            # 返回的是一个字典  {'href': 'http://www.icourse163.org/course/BIT-268001', 'class': ['py1'], 'id': 'link1'}
print(tag.attrs['class'])   # 利用字典的形式得到一些列表信息 ['py1']
print(tag.attrs['href'])	# http://www.icourse163.org/course/BIT-268001
print(type(tag.attrs))      # 查看标签的属性的类型  <class 'dict'>
print(type(tag))            # 查看tag的类型  <class 'bs4.element.Tag'>

print(soup.p.string)		# The demo python introduces several python courses.
print(type(soup.p.string))  # <class 'bs4.element.NavigableString'>

输出结果:

<html><head><title>This is a python demo page</title></head>
<body>
<p class="title"><b>The demo python introduces several python courses.</b></p>
<p class="course">Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:
<a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a> and <a class="py2" href="http://www.icourse163.org/course/BIT-1001870001" id="link2">Advanced Python</a>.</p>
</body></html>
<title>This is a python demo page</title>
<a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a>
a
p
body
{'href': 'http://www.icourse163.org/course/BIT-268001', 'class': ['py1'], 'id': 'link1'}
['py1']
http://www.icourse163.org/course/BIT-268001
<class 'dict'>
<class 'bs4.element.Tag'>
The demo python introduces several python courses.
<class 'bs4.element.NavigableString'>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值