html - 来自 html.NewTokenizer.Token() 的意外 HTML 标记

标签 html go

我正在尝试列出在网页中找到的所有标记。核心在功能

func find_links(httpBody io.Reader) []string {

    links := make([]string, 0)
    page := html.NewTokenizer(httpBody)
    for {
        tokenType := page.Next()
        if tokenType == html.ErrorToken {
            return links
        }
        token := page.Token()
        fmt.Println("Now token is ", token)
    }
}

当我打印输出时,我得到类似的东西

Now token is  <body>
Now token is

Now token is  <header>

我不明白第二个标记是什么以及为什么要打印一个额外的空行。

工作示例的完整代码 here , 即使它因为缺少 http 包而不能在 playground 上运行

最佳答案

第二个标记是 TextToken包含换行符。

将打印改为

   fmt.Printf("Now token is %T %v\n", token, token)

查看 token 的类型。

关于html - 来自 html.NewTokenizer.Token() 的意外 HTML 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26132041/

相关文章:

html - 对于本身不设置属性的绝对元素,css 属性 top 是如何计算的?

go - 通过 Jenkins 工具安装 go-1.17 时输入格式错误或输入包含不可映射的字符

go - 以编程方式启动的 Consul 代理不打开 HTTP 端口

json - 这里为什么要用到json包的Decode和Marshal方法呢?

javascript - 将隐藏的溢出内容添加到新容器

javascript - A-Z 类别 View

jquery - 幻灯片重新出现时再次为图层设置动画

html - 如何访问 django-admin 页面并扩展它?

C++ 风格的 Golang 迭代器

dictionary - 如何将 interface{} 转换为 map