我在学习google's Go programming language。有谁知道从HTML网页中提取所有网址的最佳做法吗?使用Go lang从网页中提取链接
来自Java世界,有一些库可以完成这项工作,例如jsoup,htmlparser等。但是对于lang来说,我猜没有可用的类似库了?
我在学习google's Go programming language。有谁知道从HTML网页中提取所有网址的最佳做法吗?使用Go lang从网页中提取链接
来自Java世界,有一些库可以完成这项工作,例如jsoup,htmlparser等。但是对于lang来说,我猜没有可用的类似库了?
Go的HTML解析标准包仍在进行中,不属于当前版本的一部分。您可能尝试的第三方软件包是go-html-transform。它正在积极维护。
尽管用于HTML解析的Go包确实还在进行中,但它在go.net存储库中可用。
其来源是code.google.com/p/go.net/html
github.com/golang/net
它正在积极开发。
它在最近的go-nuts discussion中被提及。
注意,用GO 1.4(2014年12月),我在this answer提到的,现在包装是golang.org/x/net
(见godoc)。
如果您了解jQuery,您一定会喜欢GoQuery。
说实话,它是我在Go中找到的最简单,最强大的HTML工具,它基于go.net存储库中的html包。 (好吧,所以它的级别高于只是一个解析器,因为它不暴露原始的HTML标记之类的,但如果你想真正得到任何与HTML文档完成后,这个软件包将帮助。)
太棒了。非常感谢。 –
我刚刚为Go发布了一个基于事件的基于事件的HTML 5.0兼容解析包。您可以find it here
下面是示例代码从一个页面中的所有链接(从A元素):
links := make([]string)
parser := NewParser(htmlContent)
parser.Parse(nil, func(e *HtmlElement, isEmpty bool) {
if e.TagName == "link" {
link,_ := e.GetAttributeValue("href")
if(link != "") {
links = appends(links, link)
}
}
}, nil)
有几件事情要记住:
我无法在任何地方找到关于如何使用此库进行拼贴的示例,并且从文档中找不到它。任何人都可以给我一个例子吗? – kristaps
是否计划在Go中原生包含这个包? – Kiril
HTML包现在可用。请阅读此处的文档: https://godoc.org/golang.org/x/net/html – R4chi7