go - GoLang WebCrawling删除空标签

标签 go goquery

我正在尝试抓取网络,在少数情况下,我的HTML看起来像这样,其中包括\n\t


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


在某些情况下,如果我也需要删除\n\t,如何删除标签。
  • 剥离所有\ n,以使标记变为空。
  • 如果为空,则其父级也将为空,这也需要递归剥离。
  • 最佳答案

    不知道这是不是你想要的

    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>
    

    关于go - GoLang WebCrawling删除空标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61329699/

    相关文章:

    html - 如何使用 golang 将 HTML 表格转换为数组

    html - 如何使用 goquery 从 HTML 页面获取简单文本?

    go - 如何从 golang 的开关盒内定义的函数内部跳出开关盒?

    go - Go语言中如何获取属性href值的值

    go - 使用 goquery 提取元描述字段

    google-app-engine - 部署 go api 不发送任何响应

    go - 简明地深复制一片?

    go - 模拟外部库以进行单元测试

    json - 在服务器上加载 CSV 数据,将数据转换为 JSON 并使用 Golang 使用 Json 查询获取结果

    go - syscall.Entersyscall 的实现在哪里?