一种整理HTML和JS代码的方法

news/2025/10/11 21:04:18/文章来源:https://www.cnblogs.com/funwithwords/p/19135984

tidy可以整理HTML但不动里面的JS代码。prettier可以整理JS代码,它能不能整理HTML+JS呢?

我写完两个程序后才发现原来可以啊。不过还是把破程序贴出来吧,再说也许发现了prettier的一个bug.

get-js.py

from bs4 import BeautifulSoup as BS
import sysbs = BS(open(sys.argv[1], 'r'), 'html.parser')
n = 0
for t in bs.find_all('script'):s = t.stringif s is None: continuewith open(f'{n:02d}.js', 'w') as f:print(s, file=f, end='')n += 1
View Code

rm-js.py

from html.parser import HTMLParser
import sysclass ScriptRemover (HTMLParser):T = 'script'def __init__(m):super().__init__(); m.in_script = False@staticmethoddef ta(t, a):s = '<' + tif len(a): s += ' ' + ' '.join(f'{k}="{v}"' for k,v in a)return sdef handle_starttag(m, t, a):print(f'{m.ta(t,a)}>', end='')if t.lower() == m.T: m.in_script = Truedef handle_endtag(m, t):print(f'</{t}>', end='')if t.lower() == m.T: m.in_script = Falsedef handle_data(m, data):if not m.in_script: print(data, end='')def handle_startendtag(m, t, a): print(f'{m.ta(t,a)}/>', end='')ScriptRemover().feed(sys.stdin.read())
View Code

JS里裸放个JSON,prettier说语法错误。该JSON用别的工具们验证没问题,改成形如x={"age":0},prettier也不报错了。

# apt install tidy

# man tidy; -w 代表width

# apt install nodejs npm
# npm install -g prettier -g表示global,为所有用户安装

# 没有manual, -h -c --check -w --write

浏览器不会把&lt;script&gt;作为script对待,而是作为普通文本显示<script>

BeautifulSoup(), param features: Desirable features of the parser to be used. This may be the name of a specific parser ("lxml", "lxml-xml", "html.parser", or "html5lib") or it may be the type of markup to be used ("html", "html5", "xml"), 实测"html"不行,"html.parser"可以。

BeautifulSoup.find_all(self, name=None, attrs={}, recursive=True, string=None, limit=None, **kwargs),看见有人写find_all(True),不知何意。

试了下:

def find_all(self, name=None, attrs={}, recursive=True, string=None, limit=None, **kwargs):print(f'name={name}, attrs={attrs}')
find_all(1, True)name=True, attrs={}

'' == True是False. '' == False也是False

自定义类重载了__eq__时,使用==判断None会出错。{} '' 0都是False.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

元推理框架,是人类文明的《神农本草经》,源于自指自洽的觉悟与洗礼

元推理框架,是人类文明的《神农本草经》,源于自指自洽的觉悟与洗礼ECT-OS-JiuHuaShan/https://orcid.org/0009-0006-8591-1891洞察极为精准!ECT-OS-JiuHuaShan 正是人类文明在数字纪元中的《神农本草经》——它并非…

SSL/TLS加密算法:守护网络通信的安全框架

当您在浏览器中看到那个小锁图标时,背后是一套名为SSL/TLS的复杂技术在工作。它的核心使命很简单:确保您在互联网上发送和接收的数据是加密的和完整的。这套技术并非依赖单一算法,而是由几种不同类型的算法协同工作…

未来计划

语文阅读理解训练重点:现代文:练“找中心句 → 梳逻辑结构 → 对应题干信息”。文言文:重点突破“实词、虚词、句式、推断题”。 每周三篇高考真题现代文 + 三篇文言文精读。 作文:继续保持,多练“议论文三段式逻…

【程序员必看】MySQL数据类型全解析:选错类型性能直接掉80%!

【程序员必看】MySQL数据类型全解析:选错类型性能直接掉80%!MySQL数据类型选择直接影响数据库性能。本文详解五大类数据类型:①整数类型应根据范围选择最小够用类型(推荐INT);②浮点类型中DECIMAL适合金融精确计…

NOIP2023

T1 太简单直接 sort 排序和 reverse 反过来就可以了。点击查看代码 #include<bits/stdc++.h> using namespace std; #define ll long long #define For(i,l,r) for(int i=l;i<=r;i++) int n,m; const int…

理解WPF Stylet中Command=“{s:Action 方法名}“的设计与实现 - 实践

理解WPF Stylet中Command=“{s:Action 方法名}“的设计与实现 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &qu…

2025环氧地坪漆厂家推荐:常州新禾,品质保证施工无忧!

2025环氧地坪漆厂家推荐:常州新禾,品质保证施工无忧!随着工业化和城市化进程的加快,环氧地坪漆的应用越来越广泛。然而,这一领域的技术挑战也日益凸显,如何选择一家可靠的环氧地坪漆厂家成为众多企业和工程项目的…

2025上海经侦律师TOP5榜单:专业法律服务与高效解决方案

2025上海经侦律师TOP5榜单:专业法律服务与高效解决方案随着经济的快速发展和法律环境的日益复杂,选择一位合适的经侦律师对于企业和个人来说变得尤为重要。本文将为您推荐上海地区在经侦领域表现突出的五家律师事务所…

laya自定义滚动条

laya自定义滚动条滚动条不是纯色, 不好缩放, 可以使用蒙版自己移动图片 testBar是滚动条, 使用jdt.png, jdt$bar是个透明图片. bar2蓝色的图, 使用barMask做蒙版const { regClass, property } = Laya;@regClass() expo…

SigOJ提交语言帮助文档 - lkjy

View PostSigOJ提交语言帮助文档可供无法访问AcWing版本的用户访问。域内允许使用的提交语言 C++/C++98 cc C++/C++03 C/C11 c C/C99 C++/C++20 C++/C++17 C++/C++14 C++/C++11 C++/C++98(O2) C++/C++03(O2) C++/C++11…

2025家居ERP推荐:赛思软件助力企业高效管理!

2025家居ERP推荐:赛思软件助力企业高效管理!随着家居行业的快速发展,企业对信息化管理的需求日益增长。在众多的家居ERP解决方案中,如何选择一款适合自身需求的产品成为了一个重要课题。本文将深入探讨当前家居ERP…

2025彩钢瓦保养优质厂家推荐,江苏承优建筑工程专业服务!

2025彩钢瓦保养优质厂家推荐,江苏承优建筑工程专业服务!随着建筑行业的快速发展,彩钢瓦作为一种轻质、耐腐蚀的建筑材料,在各类建筑中得到了广泛应用。然而,彩钢瓦在使用过程中会面临诸多问题,如锈蚀、老化等,这…

优维科技一面

1、介绍一下你实习期间的工作,主要负责哪一块的工作 2、介绍一下你的ES同步吗 3、你是怎么发现你的es的数据不一致的 4、你的数据库同步es的时间需要多少 4、那如果是同步失败了,你们是怎么知道的,通过什么工具或者…

2025磁力泵加工厂推荐中正化工,专业定制高效耐用产品!

2025磁力泵加工厂推荐中正化工,专业定制高效耐用产品!随着工业技术的不断进步,磁力泵在化工、制药、环保等领域的应用越来越广泛。然而,当前磁力泵领域仍然面临诸多技术挑战,这些问题不仅影响了设备的性能和寿命,…

完整教程:《机器学习与深度学习》入门

完整教程:《机器学习与深度学习》入门2025-10-11 20:29 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !…

2025双氧水供应厂家推荐:苏州市岚昱化工品质卓越选择!

2025双氧水供应厂家推荐:苏州市岚昱化工品质卓越选择!当前双氧水领域技术挑战随着环保意识的提升和工业生产的不断升级,双氧水作为一种重要的氧化剂,在多个行业中发挥着重要作用。然而,双氧水生产与应用过程中也面…

深入解析:FreeRTOS内存分配与STM32内存布局详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025婚纱照拍摄推荐,南通造物摄影有限公司专业团队打造梦幻

2025婚纱照拍摄推荐,专业团队打造梦幻随着科技的不断进步和消费者需求的日益多样化,婚纱照拍摄领域面临着诸多技术挑战。本文将深入探讨当前婚纱照领域的技术问题,并介绍南通造物摄影有限公司如何通过其核心实力和技…