我在學習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