【问题标题】:GoLang WebCrawling remove empty tagsGoLang WebCrawling 删除空标签
【发布时间】:2020-04-20 18:42:16
【问题描述】:

我正在尝试爬网,在少数情况下我的 HTML 看起来像这样并且包括 \n\t


<article>
    <div></div>
    <p>
        <br/>\n</p>\n\t
    <p><span></span></p>
</article>

如果我有\n\t 我也需要删除标签,我该如何删除。

  1. 剥离所有\n,使标签变为空。
  2. 如果它是空的,它的父级也将是空的,这也需要递归地剥离。

【问题讨论】:

    标签: go goquery


    【解决方案1】:

    我不知道这是不是你想要的。

    re, _ := regexp.Compile("(<.*?>|\n|\t|\\\\n|\\\\t)")
    rep := re.ReplaceAllString(`<article>
    <div></div>
    <p>
            <br/>\n</p>\n\t
    <p><span></span></p>
    </article>`, "")
    fmt.Println(rep)
    

    或者,以下代码只删除空标签。

    func RemoveTags(html string) string {
        re, _ := regexp.Compile("<[^>/]+></[^>]+>")
        rep := re.ReplaceAllString(html, "")
        if rep != html {
            return RemoveTags(rep)
        }
        return rep
    }
    
    re, _ := regexp.Compile("(\n|\t|\\\\n|\\\\t|<[^/>]+/>)")
            rep := re.ReplaceAllString(`<article>123
            <div></div>
            <p>
                    <br/>\n</p>\n\t
            <p><span></span></p>
    </article>`, "")
    fmt.Println(RemoveTags(rep))
    

    结果:

    <article>123</article>
    

    【讨论】:

      猜你喜欢
      • 2012-07-31
      • 1970-01-01
      • 2016-04-15
      • 2011-12-06
      • 2011-03-06
      • 2017-10-30
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      相关资源
      最近更新 更多