使用goquery将html文本和嵌套标签转换为文字字符串

问题描述

我正在制作一个Web应用程序,该应用程序通过使用goquery抓取来检索嵌套标记中的文本。

我想以文本形式显示文字和包含文字标签,例如“ Hello World!”。

项目-它是goquery.Selection-item.Text()和节点,_:= item.Html(),fmt.Sprintf(“%s”,node),但是我的html模板始终显示抓取的文本html格式。

这是一个示例,它刮取了verge网站并显示在index.html模板中。 enter image description here

我设置url为theverge.com,选择器为class

下面是Go中的源代码

Blockquote

func scrape(url,tag,selector,value string) string {
    container := ""
    res,e := http.Get(url)
    handleError(e)

    defer res.Body.Close()
    doc,err := goquery.NewDocumentFromreader(res.Body)
    handleError(err)
    var xpath string

    //I used xpath to get text with any selector.
    if len(tag) != 0 && len(selector) != 0 && len(value) != 0 {
        xpath = fmt.Sprintf("%s[%s=\"%s\"]",value)
    } else if len(tag) != 0 && len(selector) != 0 {
        xpath = fmt.Sprintf("%s[%s]",selector)
    } else if len(selector) != 0 && len(value) != 0 {
        xpath = fmt.Sprintf("*[%s=\"%s\"]",value)
    } else if len(selector) != 0 {
        xpath = fmt.Sprintf("*[%s]",selector)
    } else if len(tag) != 0 {
        xpath = fmt.Sprintf("%s",tag)
    } else if len(tag) == 0 && len(selector) == 0 && len(value) == 0 {
        xpath = "html"
    } else {
        xpath = "THISFORMATISNOTRIGHT"
        return xpath
    }
    fmt.Println(xpath)
    items := doc.Find(xpath)
    items.Each(func(i int,item *goquery.Selection) {
        node := item.Text()
        container += "<p>\"" + cleanString(node) + "\"</p>" + "\n\n"
    })
    container = "<p>\"" + container + "\"</p>"
    return container
}

如何将html标记和内部文本显示为纯文本?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)