爬蟲步驟
- 明確目標(確定在哪個網站搜尋)
- 爬(爬下內容)
- 取(篩選想要的)
- 處理資料(按照你的想法去處理)
擴充套件包
go get github.com/antchfx/htmlquery
程式碼如下
package main
import (
"fmt"
"github.com/antchfx/htmlquery"
"strings"
"sync"
)
const url = "https://learnku.com/go"
var wg sync.WaitGroup
func ParseEmails() {
defer wg.Done()
defer func() {
if recover() != nil {
fmt.Println(recover())
}
}()
doc, err := htmlquery.LoadURL(url)
if err != nil {
panic("解析URL錯誤")
}
rules := "//span[@class='topic-title']/text()"
nodes, err := htmlquery.QueryAll(doc, rules)
if err != nil {
panic(`not a valid XPath expression.`)
}
if len(nodes) == 0 {
fmt.Println("未找到任何內容")
return
}
for _, node := range nodes {
res := htmlquery.InnerText(node)
resTrim := strings.TrimSpace(res)
if resTrim != "" {
fmt.Printf("parse value == %s\n", resTrim)
}
}
}
func main() {
wg.Add(1)
go ParseEmails()
wg.Wait()
fmt.Println("爬蟲完成")
}
執行結果
......
parse value == JWT身份認證(附帶原始碼講解)
parse value == [系列文章] Go 學習筆記 - Go 基礎語法(2)
parse value == 第 14 課:併發 concurrency ?《Go 程式設計基礎(視訊)》
parse value == 組合函式 Collection《Go 程式設計例項 Go by Example 2020 》
parse value == 今日面試總結
爬蟲完成
本作品採用《CC 協議》,轉載必須註明作者和本文連結