<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一種整理HTML和JS代碼的方法

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

      我寫完兩個程序后才發現原來可以啊。不過還是把破程序貼出來吧,再說也許發現了prettier的一個bug.

      get-js.py

      from bs4 import BeautifulSoup as BS
      import sys
      
      bs = BS(open(sys.argv[1], 'r'), 'html.parser')
      n = 0
      for t in bs.find_all('script'):
        s = t.string
        if s is None: continue
        with 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 sys
      
      class ScriptRemover (HTMLParser):
        T = 'script'
      
        def __init__(m):
          super().__init__(); m.in_script = False
      
        @staticmethod
        def ta(t, a):
          s = '<' + t
          if len(a): s += ' ' + ' '.join(f'{k}="{v}"' for k,v in a)
          return s
      
        def handle_starttag(m, t, a):
          print(f'{m.ta(t,a)}>', end='')
          if t.lower() == m.T: m.in_script = True
      
        def handle_endtag(m, t):
          print(f'</{t}>', end='')
          if t.lower() == m.T: m.in_script = False
      
        def 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用別的工具們驗證沒問題:瀏覽器加載JS控制臺無錯誤信息,Python的json.load()成功。改成形如x={"age":0}后prettier不報錯。

      # apt install tidy

      # man tidy; -w --width

      # apt install nodejs npm
      # npm install -g prettier -g --global為所有用戶安裝

      # prettier -h --help -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)
      
      True, {} False

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

      自定義類重載了__eq__時,使用==判斷None會出錯。{} '' 0都是False. 

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

      posted @ 2025-10-11 21:02  華容道專家  閱讀(9)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲人妻精品一区二区| 亚洲国产av无码精品无广告| 婷婷六月天在线| 亚洲色最新高清AV网站| 亚洲欧美卡通另类丝袜美腿| 国产又大又粗又爽的毛片| 亚洲中文字幕一区二区| 国产成人亚洲日韩欧美| 国产热A欧美热A在线视频| 亚洲一区二区三区在线| 亚洲黄色片一区二区三区| 果冻传媒董小宛视频| 国产精品毛片无遮挡高清| 亚洲精品国偷自产在线| 亚洲第一人伊伊人色综合| 欧美成人www免费全部网站| 中国性欧美videofree精品| 亚洲大尺度一区二区av| 久久天天躁狠狠躁夜夜2020老熟妇| 欧美亚洲另类制服卡通动漫| 日韩大尺度一区二区三区| 国产精品久久久久久免费软件| caoporn成人免费公开| 亚洲综合国产激情另类一区| 久久婷婷五月综合97色直播| 欧美性xxxxx极品少妇| 亚洲精品成人老司机影视| 亚洲国产精品日韩在线 | 偷偷做久久久久免费网站| 亚洲鸥美日韩精品久久| 亚洲AV无码破坏版在线观看| 亚洲精品人成网线在播放VA| 亚洲香蕉免费有线视频| 亚洲老女人区一区二视频| 国产精品自在拍首页视频8 | 大胸美女吃奶爽死视频| 国产办公室秘书无码精品99| 亚洲国产精品久久久久婷婷图片| 成人免费av在线观看| 四虎永久精品在线视频| 亚洲精品自拍在线视频|