亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

golang爬蟲的簡單使用

2023-06-07 02:41:46
33
0

一、 環境安裝

1. golang1.18 包下載:

//studygolang.com/dl/golang/go1.18.10.linux-amd64.tar.gz

2. 解壓:

tar zxf go1.18.10.linux-amd64.tar.gz -C /usr/local/ && ln -sf /usr/local/go/bin/go /bin/go

3. 設置環境變量:

go env -w GO111MODULE=on

go env -w GOPROXY=//goproxy.cn,direct

4. 驗證

# go version
go version go1.18.10 linux/amd64
# go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/root/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="//goproxy.cn,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.18.10"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build2614304592=/tmp/go-build -gno-record-gcc-switches"

 

二、golang爬蟲庫-colly 

1. 簡介

colly 是用 Go 語言編寫的一個功能強大的爬蟲庫。它的主要特點是輕量、快速,設計非常優雅,并且分布式的支持也非常簡單,易于擴展。

github: //github.com/gocolly/colly

2. 例子

package main

import (
	"fmt"

	"github.com/gocolly/colly/v2"
)

func main() {
	// Instantiate default collector
	c := colly.NewCollector(
		// Visit only domains: hackerspaces.org, wiki.hackerspaces.org
		colly.AllowedDomains("hackerspaces.org", "wiki.hackerspaces.org"),
	)

	// On every a element which has href attribute call callback
	c.OnHTML("a[href]", func(e *colly.HTMLElement) {
		link := e.Attr("href")
		// Print link
		fmt.Printf("Link found: %q -> %s\n", e.Text, link)
		// Visit link found on page
		// Only those links are visited which are in AllowedDomains
		c.Visit(e.Request.AbsoluteURL(link))
	})

	// Before making a request print "Visiting ..."
	c.OnRequest(func(r *colly.Request) {
		fmt.Println("Visiting", r.URL.String())
	})

	// Start scraping on //hackerspaces.org
	c.Visit("//hackerspaces.org/")
}

 

3. 常用函數說明

1. 新建采集器
c := colly.NewCollector()
通過該方法可以創建一個簡單的colly采集器,這里面可以帶上不同的option 實現不同的采集約束,比如:
colly.AllowedDomains:約定只能采集指定域名的鏈接

2. 請求時處理
調用c.OnRequest()方法注冊請求回調,每次發送請求時執行該回調

3. 響應時處理
調用c.OnResponse()方法注冊響應回調,每次收到響應時執行該回調

4. 遇到錯誤時的處理
調用c.OnError()方法注冊錯誤回調,執行請求發生錯誤時執行該回調

5. HTML處理
調用c.OnHTML方法注冊HTML回調,解析爬取到的網頁,根據解析配置的解析器,提取相關目標

6. 訪問目標
調用c.Visit()訪問目標

0條評論
0 / 1000
楊曄
2文章數
0粉絲數
楊曄
2 文章 | 0 粉絲
楊曄
2文章數
0粉絲數
楊曄
2 文章 | 0 粉絲
原創

golang爬蟲的簡單使用

2023-06-07 02:41:46
33
0

一、 環境安裝

1. golang1.18 包下載:

//studygolang.com/dl/golang/go1.18.10.linux-amd64.tar.gz

2. 解壓:

tar zxf go1.18.10.linux-amd64.tar.gz -C /usr/local/ && ln -sf /usr/local/go/bin/go /bin/go

3. 設置環境變量:

go env -w GO111MODULE=on

go env -w GOPROXY=//goproxy.cn,direct

4. 驗證

# go version
go version go1.18.10 linux/amd64
# go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/root/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="//goproxy.cn,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.18.10"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build2614304592=/tmp/go-build -gno-record-gcc-switches"

 

二、golang爬蟲庫-colly 

1. 簡介

colly 是用 Go 語言編寫的一個功能強大的爬蟲庫。它的主要特點是輕量、快速,設計非常優雅,并且分布式的支持也非常簡單,易于擴展。

github: //github.com/gocolly/colly

2. 例子

package main

import (
	"fmt"

	"github.com/gocolly/colly/v2"
)

func main() {
	// Instantiate default collector
	c := colly.NewCollector(
		// Visit only domains: hackerspaces.org, wiki.hackerspaces.org
		colly.AllowedDomains("hackerspaces.org", "wiki.hackerspaces.org"),
	)

	// On every a element which has href attribute call callback
	c.OnHTML("a[href]", func(e *colly.HTMLElement) {
		link := e.Attr("href")
		// Print link
		fmt.Printf("Link found: %q -> %s\n", e.Text, link)
		// Visit link found on page
		// Only those links are visited which are in AllowedDomains
		c.Visit(e.Request.AbsoluteURL(link))
	})

	// Before making a request print "Visiting ..."
	c.OnRequest(func(r *colly.Request) {
		fmt.Println("Visiting", r.URL.String())
	})

	// Start scraping on //hackerspaces.org
	c.Visit("//hackerspaces.org/")
}

 

3. 常用函數說明

1. 新建采集器
c := colly.NewCollector()
通過該方法可以創建一個簡單的colly采集器,這里面可以帶上不同的option 實現不同的采集約束,比如:
colly.AllowedDomains:約定只能采集指定域名的鏈接

2. 請求時處理
調用c.OnRequest()方法注冊請求回調,每次發送請求時執行該回調

3. 響應時處理
調用c.OnResponse()方法注冊響應回調,每次收到響應時執行該回調

4. 遇到錯誤時的處理
調用c.OnError()方法注冊錯誤回調,執行請求發生錯誤時執行該回調

5. HTML處理
調用c.OnHTML方法注冊HTML回調,解析爬取到的網頁,根據解析配置的解析器,提取相關目標

6. 訪問目標
調用c.Visit()訪問目標

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
1
0