Lan's note

高速HUGOブログで脱WordPress!静的ブログでもココまでできるを実証中!

2020-03-06

Go言語[Golang]goqueryスクレイピングをProxy経由で行う方法

GolangのプログラムをProxy経由で行うのは簡単です。

Golangの環境変数にProxy設定を書くだけで、Proxy経由でスクレイピングなど他のサイトへのアクセスを含むプログラムを実行できます。

本記事ではスクレイピング(goquery)については割愛し、環境変数の設定方法を記しておきます。

Goの環境変数

# go env

このコマンドを実行することで、Golangの環境変数を見ることができます。

GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
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-build957315940=/tmp/go-build -gno-record-gcc-switches"

GOPROXY=""という項目がありますが、ここにProxyサーバー(URL)を記述しても期待通りの動作はしません。

環境変数にProxy設定をする

# export HTTPS_PROXY=https://123.456.789.10:8080/

前述のGOPROXY=に対してProxy設定を行うのではなく、HTTPS_PROXYに対してProxyサーバーを設定します。

(または、HTTP_PROXY

これでIPブロックされてしまったスクレイピング処理もProxy経由で行うことができます。