当前位置: 首页 > article >正文

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 (比如豆包) 帮我们写:


http://www.kler.cn/a/318780.html

相关文章:

  • 网站小程序app怎么查有没有备案?
  • 【go从零单排】Random Numbers、Number Parsing
  • 搭建监控系统Prometheus + Grafana
  • Python数据预处理
  • EDUCODER头哥 基于MVC模式的用户登录
  • nuxt3添加wowjs动效
  • 股指期货理论价格计算公式是什么?
  • 【论文】FunAudioLLM:一个旨在增强人类与大型语言模型(LLMs)之间自然语音交互的模型家族
  • 如何在算家云搭建DiffSynth-Kolors-Painter(图像生成)
  • 【ARM】AMBA和总线
  • 详解机器学习经典模型(原理及应用)——随机森林
  • 【JS】严格模式/非严格模式的区别
  • Android 平台使用VIA创建语音交互应用开发指南
  • 更新C语言题目
  • 【linux】gcc makefile
  • 从0到1搭建权限管理系统系列三 .net8 JWT创建Token并使用
  • IDEA中Quarkus框架(3.13版本)开发、调试、部署、打包等
  • 通过 OBD Demo 体验 OceanBase 4.3 社区版
  • 关于Hadoop的详细步骤及方案案例
  • python爬虫初体验(三)——将网页数据导出csv和excel文件
  • eCharts扩展图表
  • PDF一键转播客!PDF2Audio让文档“开口说话“
  • 开始学习深度学习-前言
  • 【Docker】Docker快速入门
  • 玩手机数据集 8201张玩手机的照片,有对应的xml和txt文件,可以用于yolo训练
  • 【RabbitMQ】RabbitMQ 的概念以及使用RabbitMQ编写生产者消费者代码