【问题标题】:Is there any method to remove javascript code from an HTML document?有什么方法可以从 HTML 文档中删除 javascript 代码?
【发布时间】:2012-01-07 04:58:54
【问题描述】:

我想从 HTML 文档中删除所有 javascript 代码,并保留实际文本。是否有任何正则表达式或 python 脚本来执行此操作?谢谢。

【问题讨论】:

    标签: javascript python html


    【解决方案1】:

    您可以编写一个正则表达式来查找'<script''script>',并且做得很好。

    编辑:正如@cHao 指出的那样——Regex's are bad for parsing HTML

    在您可以完全控制 HTML 的地方,正则表达式可能仍然有用。

    【讨论】:

    • <script> document.write('</' + 'script>'); </script>
    • <script language=javascript>
    • 可以说,为此使用正则表达式是等待发生的破坏。 (在此处插入指向stackoverflow.com/q/1732454/319403 的必填链接。)
    • @cHao 非常感谢。应该考虑一下。我应该删除答案吗?
    • 如果这是我的答案,我会——没有一个合理大小的正则表达式足以满足所有可能的可能性。但它在您可以完全控制的 HTML 上可能很有用(并且您可以保证不会有任何极端情况)。真的,这是你的电话。
    【解决方案2】:

    你可以使用这个 jQuery 代码来移除:

    $(javascript).html('')
    

    和 Firebug 将您的 jQuery 代码注入网页:

    >>> var x = window.open(""); 
    Window opened 
    >>> x 
    Window about:blank 
    >>> x.document 
    Document about:blank 
    >>> x.document.write("$(javascript).html('')"); 
    Alert popped up
    

    【讨论】:

      【解决方案3】:

      使用BeautifulSoup

      #!/usr/bin/env python
      from BeautifulSoup import BeautifulSoup
      
      with open("with-scripts.html", "r") as f:
          soup = BeautifulSoup(f.read())
      
      for script in soup("script"):
          script.extract()
      
      with open("without-scripts.html", "w") as f:
          f.write(soup.prettify())
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-12
        • 1970-01-01
        • 2019-08-01
        • 2016-11-16
        • 1970-01-01
        • 2012-02-01
        相关资源
        最近更新 更多