Python 解析 html
一、场景分析
假设有如下 html 文档:
写一段 python 脚本,解析出里面的数据,包括经度维度。
<div class='storelist'><ul><li lng="100.111111" lat="10.111111"><h4>联盟店1</h4><p><br />X市Y区Z街道 1000 号</p></li><li lng="101.111111" lat="11.111111"><h4>联盟店2</h4><p><br />X市Y区Z街道 1001 号</p></li><li lng="102.111111" lat="12.111111"><h4>联盟店3</h4><p><br />X市Y区Z街道 1002 号</p></li></ul>
</div>
二、步骤
1、安装 BeautifulSoup4 库
pip install bs4
或者
pip install beautifulsoup4
2、脚本内容
store.py 脚本内容如下:
from bs4 import BeautifulSoup# 官方文档:https://beautifulsoup.readthedocs.io/zh-cn/v4.4.0/#id14# 输入文档
input_path = r"C:\Users\Administrator\Desktop\py\html\store.html"
# 输出文档
output_path = r"C:\Users\Administrator\Desktop\py\html\data.txt"
# 以 append 追加方式打开输出文档
output_file = open(output_path, 'a', encoding='utf-8')# 打开 html 输入文档,并使用 Python 标准库 html.parser 解析成 BeautifulSoup 对象
soup = BeautifulSoup(open(input_path, 'r', encoding='utf-8'), 'html.parser')# 搜索文档树,获取到所有 li TAG 组成的数组
li_array = soup.find_all('li')# 遍历这个数组,并往输出文档输出信息
for i, li in enumerate(li_array):# print(li.contents)output_file.write('\n'+str(i+1)+'、'+li.contents[1].text)output_file.write('\n 经度:'+li['lng'])output_file.write('\n 维度:'+li['lat'])output_file.write('\n 名称:'+li.contents[1].text)output_file.write('\n 地址:'+li.contents[3].text.strip())output_file.close()
其中,contents 属性可以将 tag 的子节点以列表的方式输出:
print(li.contents)
我们可以用列表索引来获取它的某一个元素
li.contents[1] 表示 <h4>联盟店X</h4> 获取标签里面的内容,就是 li.contents[1].text
li.contents[3] 表示 <p></p> 因为 p 后面有换行,所以用 strip() 函数去掉换行符

不然输出结果就会变成

3、运行
py store.py
4、输出结果
1、联盟店1经度:100.111111维度:10.111111名称:联盟店1地址:X市Y区Z街道 1000 号
2、联盟店2经度:101.111111维度:11.111111名称:联盟店2地址:X市Y区Z街道 1001 号
3、联盟店3经度:102.111111维度:12.111111名称:联盟店3地址:X市Y区Z街道 1002 号
三、拥抱AI
像这种简单的脚本程序,现在都可以叫 AI (比如豆包) 帮我们写:

相关文章:
Python 解析 html
一、场景分析 假设有如下 html 文档: 写一段 python 脚本,解析出里面的数据,包括经度维度。 <div classstorelist><ul><li lng"100.111111" lat"10.111111"><h4>联盟店1</h4><p>…...
“大数据+高职”:VR虚拟仿真实训室的发展前景
随着信息技术的迅猛发展,大数据技术与虚拟现实(VR)的融合正在为高等教育,尤其是高等职业教育(高职)带来革命性的变革。VR虚拟仿真实训室作为这一技术融合的典型应用,正逐步展现其在提升教育质量…...
Pygame中Sprite实现逃亡游戏4
在《Pygame中Sprite实现逃亡游戏3》中实现了玩家跳跃飞火的效果,接下来通过精灵类的碰撞检测来判断飞火是否击中玩家、飞火是否击中飞龙以及飞龙是否抓住玩家。 1 飞火是否击中玩家的判断 判断飞火是否击中玩家的代码如图1所示。 图1 判断飞火是否击中玩家的代码 …...
sentinel原理源码分析系列(一)-总述
背景 微服务是目前java主流开发架构,微服务架构技术栈有,服务注册中心,网关,熔断限流,服务同学,配置中心等组件,其中,熔断限流主要3个功能特性,限流,熔断&…...
创建数据/采集数据+从PI数据到PC+实时UI+To PLC
Get_Data ---------- import csv import os import random from datetime import datetime import logging import time # 配置日志记录 logging.basicConfig(filename=D:/_Study/Case/Great_Data/log.txt, level=logging.INFO, format=%(asctime)s - %(l…...
Linux基础入门 --12 DAY(SHELL脚本编程基础)
shell脚本编程 声明:首行shebang机制 #!/bin/bash #!/usr/bin/python #!/usr/bin/perl 变量 变量类型 变量类型: 内置变量 : 如 PS1 , PATH ,HISTSIZE 用户自定义变量 不同变量存放数据不同,决定了以下 1.数据存储方式 2.参与的运算 3.表示…...
关于frp Web界面-----frp Server Dashboard 和 frp Client Admin UI
Web 界面 官方文档:https://gofrp.org/zh-cn/docs/features/common/ui/ 目前 frpc 和 frps 分别内置了相应的 Web 界面方便用户使用。 客户端 Admin UI 服务端 Dashboard 服务端 Dashboard 服务端 Dashboard 使用户可以通过浏览器查看 frp 的状态以及代理统计信…...
Hive数仓操作(一)
Hive 介绍 Hive 是一个基于 Hadoop 的数据仓库工具,旨在简化大规模数据集的管理和分析。它将结构化数据文件映射为表,并提供类似 SQL 的查询功能。Hive 的数据存储在 Hadoop 分布式文件系统(HDFS)中,使用 Hive 查询语…...
什么是NAND Flash?
什么是NAND Flash? NAND闪存是一种非易失性存储器技术,它彻底改变了数字时代的数据存储。它是闪存的一种形式,这意味着它可以被电擦除和重新编程。NAND闪存以NAND(NOT-AND)逻辑门命名,该逻辑门用于其基本架构。术语“…...
Spring Boot 整合 Keycloak
1、概览 本文将带你了解如何设置 Keycloak 服务器,以及如何使用 Spring Security OAuth2.0 将 Spring Boot 应用连接到 Keycloak 服务器。 2、Keycloak 是什么? Keycloak 是针对现代应用和服务的开源身份和访问管理解决方案。 Keycloak 提供了诸如单…...
工程师 - Windows下使用WSL来访问本地的Linux文件系统
Access Linux filesystems in Windows and WSL 2 从 Windows Insiders 预览版构建 20211 开始,WSL 2 将提供一项新功能:wsl --mount。这一新参数允许在 WSL 2 中连接并挂载物理磁盘,从而使您能够访问 Windows 本身不支持的文件系统࿰…...
SQL高可用优化-优化SQL中distinct和Where条件对索引字段进行非空检查语句
最近做一个需求,关于SQL高可用优化,需要优化项目中的SQL,提升查询效率。 SQL高可用优化 一、优化SQL包含distinct场景二、优化SQL中Where条件中索引字段是否为NULL三、代码验证1. NodeMapper2. NodeService3. NodeController4.数据库数据5.项…...
openharmony源码编译
1. win拷贝数据到虚拟机Ubuntu配置 1.打开终端,更新软件库 sudo apt-get update 2.下载安装open-vm-tools,open-vm-tools-desktop sudo apt-get install open-vm-tools open-vm-tools-desktop 3.重启 sudo reboot 2.编译环境配置 1.设置环境脚本…...
H.264编解码工具 - NVIDIA CUDA
一、简介 NVIDIA CUDA编解码是一项采用NVIDIA图形处理器(GPU)来加速视频编码和解码的技术。CUDA(Compute Unified Device Architecture)是一种并行计算平台和编程模型,允许开发者使用GPU来进行通用计算。 优点: 加速编解码速度:CUDA编解码利用GPU的并行处理能力,可以…...
数学建模小练习
题目B 电影《虎胆龙威 3》中,塞谬尔和布鲁斯扮演的主角要拆除西蒙所放的炸弹。西蒙喷泉上面有两个壶,容量分别是5加仑和3加仑,向其中一个壶中加入刚好 4 加仑的水,计时器会停止,否则5分钟后会爆炸。 问题:能够安全拆弹…...
Java爬虫:获取SKU详细信息的艺术
在电子商务的世界里,SKU(Stock Keeping Unit,库存单位)是每个商品的唯一标识符,它包含了商品的详细信息,如尺寸、颜色、价格等。对于商家和开发者来说,获取商品的SKU详细信息对于库存管理、订单…...
心理咨询展示网站建设渠道拓展
心理问题长期以来都受到关注,每个城市里也都有相关服务商家,除了进店外,线上也可以开展咨询服务,对需求者来说需要找到靠谱的品牌,而商家也需要触达到更多客户获取转化。 网站是品牌线上工具,利于商家通过…...
naocs注册中心,配置管理,openfeign在idea中实现模块间的调用,getway的使用
一 naocs注册中心步骤 1 nacos下载安装 解压安装包,直接运行bin目录下的startup.cmd 这里双击运行出现问题的情况下 (版本低的naocs) 在bin目录下 打开cmd 运行以下命令 startup.cmd -m standalone 访问地址: http://localh…...
先进封装技术 Part02---TSV科普
一、引言 随着电子设备向更小型化、更高性能的方向发展,传统的芯片互连技术已经无法满足日益增长的需求。在这样的背景下,TSV(Through-Silicon Via,硅通孔)技术应运而生,成为先进封装技术中的核心之一。 如果我们看大多数主板,可以看到两件事:第一,芯片之间的大多数连…...
【数据挖掘】2023年 Quiz 1-3 整理 带答案
目录 Quiz 1Quiz 2Quiz 3Quiz 1 Problem 1(30%). Consider the training data shown below. Here, A , B A, B A,B, and...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
