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

网站建设需求材料推广网店的途径和方法

网站建设需求材料,推广网店的途径和方法,wordpress+icon+修改,网站如何做国外推广前言 其实大家应该都有所困扰,就是爬虫中的解析。无论是解析HTML还是解析JSON 这里给大家推荐个很好用的方法。 bs4jsonpath 原理 将 HTML 转换为 JSON 的核心在于解析 HTML 的结构化标签并映射为 JSON 的键值对格式。 HTML 到 JSON 的转换本质上是结构化标记语…

前言

其实大家应该都有所困扰,就是爬虫中的解析。无论是解析HTML还是解析JSON

这里给大家推荐个很好用的方法。

bs4+jsonpath

原理

将 HTML 转换为 JSON 的核心在于解析 HTML 的结构化标签并映射为 JSON 的键值对格式。

HTML 到 JSON 的转换本质上是结构化标记语言到数据交换格式的映射,其核心逻辑包含:

  1. DOM 树解析:通过解析器将 HTML 标签、属性和文本内容转化为树形结构(如 tag: “div”, attributes: {“class”: “container”}, children: […])
  2. 递归遍历:深度优先遍历 DOM 节点,将每个节点及其子节点转换为嵌套的 JSON 对象
  3. 类型处理:区分元素节点(ELEMENT_NODE)和文本节点(TEXT_NODE),后者直接存储为字符串
  4. 属性提取:将 HTML 标签属性(如 id、class)转换为 JSON 对象的键值对

安装

pip install bs4

pip install jsonpath

使用

from bs4 import BeautifulSoup
import jsondef html_to_json(html):soup = BeautifulSoup(html, 'html.parser')return parse_node(soup)def parse_node(node):if node.name is None:  # 文本节点return node.text.strip()result = {"tag": node.name}if node.attrs:result["attrs"] = node.attrsif node.contents:result["children"] = [parse_node(child) for child in node.contents if child.name or child.text.strip()]return result

没错 就是短短的这么几行代码 (可能还是有问题 毕竟是自写+GPT)

这里已经转换成JSON了。但是还远远不够。这里又要使用另一个库

jsonpath

没错,之前这个库可能大家用法只会简单的,但其实结合这个可以通过节点 像AST一样去解析代码。

面对又臭又长的屎山 出值,何尝不是一种乐趣呢?

这里给大家写个通用例子吧。

获取页面中所有的图片

$..*[?(@.tag == 'img')].attrs.src

获取h1标题

$..*[?(@.tag == 'h1').children[0]]

提取内容

$..[?(@.tag == 'div' && @.attrs['class'] =~ /.*content.*/i && !@.children[?(@.tag == 'em')]
)]

结语

只能说偶尔发现的小TIPS ,写多了估计也会腻。适合一些层级比较复杂的网站。理论上可以通杀一些网站的解析~~~

更多的还是依靠jsonpath的解析能力。偶尔水一篇吧 。

http://www.dtcms.com/a/592491.html

相关文章:

  • 排名优化网站沈阳中小企业网站制作
  • 从0到1:兰亭妙微如何用“小程序思维”重构用户体验路径
  • AI重构天猫双11,一场新的效率革命
  • 智慧园区:数字中国的“微缩实验室”如何重构城市未来
  • 新技术如何重构AI营销获客的底层逻辑与竞争格局
  • [论文阅读] AI+ | AI重构工业数字孪生!新一代iDTS破解数据稀缺、智能不足难题,附3大落地案例
  • 京东的一次范围经济尝试,却改变了汽车营销游戏规则
  • 圆柱电池Pack生产线的极性与质量守护:视觉检测系统把好安全关
  • 【大数据技术03】机器学习与算法
  • A模块 系统与网络安全 第四门课 弹性交换网络-6
  • it之家网站源码wordpress门户主体
  • 浏览器访问web服务器经过了哪些过程
  • 时序数据库系列(七):性能监控实战指标收集
  • 【数据库】分布式事务篇
  • 《Windows 11 + Docker:极简DVWA靶场搭建全记录》—— 附详细排错指南与最终解决方案
  • 时序数据库系列(八):InfluxDB配合Grafana可视化
  • M3部署vllm
  • 仿新浪全站网站源码公司简介电子版宣传册模板
  • 在 Lit 应用中实现响应式布局
  • 零基础学AI大模型之向量数据库介绍与技术选型思考
  • 三次更名的背后:百度AI的定位困惑
  • StreamingT2V:从文本生成一致、动态和可扩展的长视频
  • 网站入口百度免费空间最大的网盘
  • 基于YOLO11深度学习的电梯内车辆识别系统【Python源码+Pyqt5界面+数据集+安装使用教程+训练代码】【附下载链接】
  • vscode配置Claude Code(使用智谱API)
  • 基于VMware与CentOS 7的Hadoop集群部署全景指南
  • 【系统分析师】考后总结
  • Java 枚举类(Enum)技术文档
  • Qt 里写 QUdpSocket 发一串数据为例,用 4 层模型顺一遍流程
  • 太阳光模拟器:在电动天窗直射工况下HUD测试中的应用