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

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

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}, {attrs} {recursive}')
find_all(1, True, recursive=False)rue, {} False

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

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

>>> '' is None
<stdin>:1: SyntaxWarning: "is" with a literal. Did you mean "=="?
False

http://www.sczhlp.com/news/186055/

相关文章:

  • ubuntu24.04 desktop 安装vnc远程桌面(亲测)
  • 完整教程:游标查询在对话历史场景下的独特优势
  • [论文笔记] A Contemporary Survey of Large Language Model Assisted Program Analysis
  • 自适应网站开发seo高端h5手机网站设计案例
  • 男女做暖暖的试看网站酥酥影视网站常见的域名
  • 网站域名备案更改吗网站建设兰州
  • 做通风工程上哪个网站发布企业邮箱哪个比较好用
  • 怎么制作一个个人网站襄阳网站建设feeyr
  • 网站怎么放404页面南昌定制网站开发
  • 做运营必看的网站网站建设比赛方案
  • 凡科网官方网站山东省建设厅招标网站首页
  • 济南高新区网站建设公司网络营销类网站
  • 江苏分销网站建设柯桥网站建设哪家好_绍兴市场推广_非凡分类信息
  • 网站代运营做哪些用手机做网站的app
  • 洪洞网站建设公司招聘网站续费申请
  • 专业排名优化网站网站服务费做管理费用
  • 经典企业网站欣赏制作企业网站公司排名
  • 旅游门户网站源码怎么做的wordpress安装域名
  • o2o电子商务网站自己怎么做链接
  • 怎么制作网站教程图片app网站有哪些
  • 优化推广网站如何做泰国网站
  • 网站建设越来越便宜作品提示优化要删吗
  • 网络建站怎么做在百度里面做个网站怎么做
  • 建设电子书阅读网站泉州建站模板网站
  • 自己做的小网站wordpress怎么换语言
  • 网站开发验收规范开发一个购物app需要多少钱
  • 网站做等报定级工作要多久aspcms手机网站插件
  • 成都微信小程序开发公司郑州网站推广优化外包公司
  • 网站开发教材使用flash做网站
  • 网站建设优化培训温州做网络推广的公司