首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于MOOC嵩天《Python网络爬虫与信息提取》视频学习记录——第二周:Beautiful Soup库

基于MOOC嵩天《Python网络爬虫与信息提取》视频学习记录——第二周:Beautiful Soup库

作者头像
Dragon水魅
发布2026-01-23 14:21:17
发布2026-01-23 14:21:17
1120
举报

1.Beautiful Soup库基本使用方法

以requests库get方式解析:

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
try:
	kv = {'user_Agent':'Mozilla/5.0'}
	demo = requests.get('http://www.ugirl.com',headers = kv)
	demo.raise_for_status()
	soup = BeautifulSoup(demo.content,'html.parser')		
	print(soup.prettify())		#以html文本格式打印
except:
	print('解析错误')

解析结果如下:

在这里插入图片描述
在这里插入图片描述

以打开源代码方式解析:

代码语言:javascript
复制
from bs4 import BeautifulSoup
try:
    soup = BeautifulSoup(open('D:\\ugirl.html',encoding='UTF8'),'html.parser')
    print(soup.prettify())		#以html文本格式打印
except:
    print('解析错误')

解析结果同上。

Beautiful Soup解析器

在这里插入图片描述
在这里插入图片描述

2.Beautiful Soup库的基本元素

在这里插入图片描述
在这里插入图片描述
1)Tag

title标签是页面在浏览器左上方显示的信息。

代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
try:
	kv = {'user_Agent':'Mozilla/5.0'}
	demo = requests.get('http://www.ugirl.com',headers = kv)
	demo.raise_for_status()
	soup = BeautifulSoup(demo.content,'html.parser')		
	print(soup.title)
	print(type(soup.title))
except:
	print('解析错误')

运行结果:

在这里插入图片描述
在这里插入图片描述

打印a标签:

代码语言:javascript
复制
print(soup.a)		#当存在多个a标签时只获取第一个a标签
print(type(soup.a))

运行结果:

在这里插入图片描述
在这里插入图片描述
2)name

打印a标签的名字:

代码语言:javascript
复制
print(soup.a.name)
print(type(soup.a.name))

运行结果:

在这里插入图片描述
在这里插入图片描述

打印a标签父亲的名字(包含a标签的上一层标签):

代码语言:javascript
复制
print(soup.a.parent.name)	

运行结果:

在这里插入图片描述
在这里插入图片描述
3)attrs

打印a标签的属性:

代码语言:javascript
复制
print(soup.a.attrs)	

运行结果:

在这里插入图片描述
在这里插入图片描述
4)string

打印非属性字符长:

代码语言:javascript
复制
print(soup.a.string)

运行结果:

在这里插入图片描述
在这里插入图片描述

该网站无非属性字符串。

5)comment

打印注释:

代码语言:javascript
复制
newsoup =BeautifulSoup('<b><!--This is a comment--></b><p>This is not a comment,</p>','html.parser')
print(newsoup.b.string)
print(type(newsoup.b.string))
print(new)

运行结果:

在这里插入图片描述
在这里插入图片描述

Beautiful Soup库的理解

在这里插入图片描述
在这里插入图片描述

3.基于bs4库的html遍历方法

标签树的下行遍历

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
try:
    kv = {'user_Agent':'Mozilla/5.0'}
    demo = requests.get('https://handmaid.cn/?ad_id=751',headers = kv)
    demo.raise_for_status()
    soup = BeautifulSoup(demo.content,'html.parser')
    print(soup.head.contents)		#把head标签的儿子结点放入列表中
    print(type(soup.head.contents))
    print(len(soup.head.contents))
except:
    print('爬取失败')

运行结果:

在这里插入图片描述
在这里插入图片描述

可以使用for i in soup.head.contents进行遍历。

标签树的上行遍历

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
import requests
from bs4 import BeautifulSoup
try:
    kv = {'user_Agent':'Mozilla/5.0'}
    demo = requests.get('https://handmaid.cn/?ad_id=751',headers = kv)
    demo.raise_for_status()
    soup = BeautifulSoup(demo.content,'html.parser')
    for parent in soup.a.parents:
        if parent is None:
            print(parent)
        else:
            print(parent.name)		#打印a标签所有先辈的名字
except:
    print('爬取失败')

标签树的平行遍历

在这里插入图片描述
在这里插入图片描述

注意:平行遍历必须发生在同一个父节点下的各节点间

在这里插入图片描述
在这里插入图片描述

可以使用for in 进行遍历。

在这里插入图片描述
在这里插入图片描述

4.基于bs4库的html格式输出

prettify( ):为html文本加入换行符,可以使用print打印

代码语言:javascript
复制
import requests
try:
	from bs4 import BeautifulSoup
	kv = {'user_Agent':'Mozilla/5.0'}
	demo = requests.get('https://handmaid.cn/?ad_id=751',headers = kv)
	soup = BeautifulSoup(demo.content,'html.parser')
	print(soup.prettify())
except:
	print('爬取错误')

运行结果:

在这里插入图片描述
在这里插入图片描述

可以单独打印a标签:

代码语言:javascript
复制
print(soup.a.prettify())

运行结果:

在这里插入图片描述
在这里插入图片描述

信息组织与提取方法

find_all()

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.Beautiful Soup库基本使用方法
    • Beautiful Soup解析器
  • 2.Beautiful Soup库的基本元素
    • 1)Tag
    • 2)name
    • 3)attrs
    • 4)string
    • 5)comment
    • Beautiful Soup库的理解
  • 3.基于bs4库的html遍历方法
    • 标签树的下行遍历
    • 标签树的上行遍历
    • 标签树的平行遍历
  • 4.基于bs4库的html格式输出
    • 信息组织与提取方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档