使用bs4 分析html文件

首先需要 pip install beautifulsoup4安装

然后为了方便学习此插件,随便打开一个网页,然后鼠标右键,打开源网页,如下图片

这样就可以获得一个网页源码,全选复制粘贴到本地,存储为 .html

文件,后续的学习以此html文件为模版进行

python3 复制代码
from bs4 import BeautifulSoup
import os

# html文件放置的路径和名字
filePath = os.path.join(os.getcwd(), "HTML", "1.html")
print(filePath)
# 打开html文件,注意encoding格式
with open(filePath, "r", encoding="UTF-8") as f:
    html_content = f.read()
# 把这个html进行解析
soup = BeautifulSoup(html_content, 'html.parser')

# 这里是抓第一个 <h1>标签的文本内容
h1_content = soup.find('h1').get_text()
# 这里是抓第一个<p> 标签的文本内容
p_content = soup.find('p').get_text()

print('h1 content:', h1_content)
print('p content:', p_content)
print("--------------------------")
# 这里是抓取所有<p> 标签
p_content_all = soup.find_all('p')
# 利用for 循环进行逐条解析,获取文本内容
for p_content in p_content_all:
    print(p_content.get_text())

如,html文件中含结构

html 复制代码
                  <div class="title_box pd10">
                        <h1>六年前的今天:湖人退役科比的8号和24号球衣</h1>
                        <div class="info_box">
                            <span class="time">2023-12-19</span>
                            <span class="source">直播吧</span>
                        </div>
                    </div>

我使用如下命令:

python3 复制代码
# 使用此命令获取 <h1>标签的文本内容
soup.find('h1').get_text()
# 结果:
六年前的今天:湖人退役科比的8号和24号球衣
soup.find('span', class_='time')
# 结果
2023-12-19

例二:

html内容含结构如下:

html 复制代码
                                                    <div class="disZoom bq_bar">
                                                        <div class="disZoom bar_info">
                                                            <span class="biaoqian">
                                                                 <a href="/?cateid=1005" class="tags">体育</a>
                                                            </span>
                                                            <span class="laiyuan">来源:阿希啥都聊</span>
                                                        </div>
                                                    </div>

使用命令:

python3 复制代码
# 抓取html中出现的第一个以下结构内的内容
soup.find('a', herf="/?cateid=1005")
# 结果是:
体育

类似的结构还有:

html 复制代码
                                    </span>
                                        <p class="tit">早报:华为nova 12价格全曝光 蔚来获22亿美元融资</p>
                                    </a>
python3 复制代码
soup.find('p', class_="tit")

基本上你想要抓取的内容都可以按照格式进行解析获取,是非常方便的

先行记录:

在之后自己构建网页后,自主进行管理,获取,导出网页内容应该都是非常有帮助的,避免反复使用re工具自己分析,太过于繁琐,结合 requests 库等,可以更加高效进行网页访问及内容获取。

相关推荐
我的xiaodoujiao1 小时前
从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 9--基础知识 5--常用函数 3
前端·python·测试工具·ui
B站计算机毕业设计之家5 小时前
智慧交通项目:Python+PySide6 车辆检测系统 YOLOv8+OpenCV 自定义视频 自定义检测区域 (源码+文档)✅
大数据·python·opencv·yolo·智慧交通·交通·车流量
java1234_小锋6 小时前
TensorFlow2 Python深度学习 - 深度学习概述
python·深度学习·tensorflow·tensorflow2·python深度学习
迈火7 小时前
PuLID_ComfyUI:ComfyUI中的图像生成强化插件
开发语言·人工智能·python·深度学习·计算机视觉·stable diffusion·语音识别
浔川python社9 小时前
《网络爬虫技术规范与应用指南系列》(xc—5)完
爬虫·python
whltaoin9 小时前
中秋赏月互动页面:用前端技术演绎传统节日之美
前端·javascript·html·css3·中秋主题前端
MongoVIP9 小时前
Scrapy爬虫实战:正则高效解析豆瓣电影
python·scrapy
李小白6610 小时前
Python文件操作
开发语言·python
weixin_5259363310 小时前
金融大数据处理与分析
hadoop·python·hdfs·金融·数据分析·spark·matplotlib
Zwb29979211 小时前
Day 30 - 错误、异常与 JSON 数据 - Python学习笔记
笔记·python·学习·json