GO語言 環境搭建與git指令的使用
#Go語言中文網:https://studygolang.com/
Go語言簡介:
說起爬蟲,都會想到Python中的urllib2、Scrapy、selenium等包。但當涉及到大量的網址需要爬取時,對單臺機器的爬蟲速度要求很高。Python中的多執行緒或者高併發爬蟲實現起來較為麻煩,這時候原生併發的Go語言就能派上很大的用場。Go語言本身支援併發程式設計,相比起Python等解釋型語言,它的編譯速度很快,跟C++媲美。它也帶有net/http包,支援爬蟲功能,自帶有database/sql包,支援資料庫連線。
而Go在爬蟲中,最突出的優點就是其方便的並行性,這讓爬蟲能夠高效地工作,減輕工程難度。
Go語言Ubuntu下安裝:
平常來說以下命令可以安裝Go:
[email protected]:~$ apt-get install golang
但是後來在實際應用中,發現這樣安裝下來的Go有諸多bug,還是去官網把go的tar包下載下來,再解壓
下載地址:https://www.golangtc.com/download 選擇版本:go1.9.2.linux-amd64.tar.gz
下載解壓後移動資料夾到自己喜歡的資料夾下,然後配置 /etc/profile 配置自己的GOPATH和GOROOT
輸入 go version,有顯示則配置成功
git指令的使用
在實際進行Go語言程式的編寫時,借鑑別人程式碼的時候,會發現別人的程式碼中有許多github或者golang的包,例如first.go程式中包含下列import
import("database/sql"
_"github.com/jackx/pgx/stdlib"
)
(golang.com是被牆的,之後的文件會說明如何import網路不可連的包)
這時如果我們只安裝了go語言,在go run first.go時則會報錯:
go: missing Git command. See http://golang.org/s/gogetcmd
這個的解決方法,只需要 apt-get install git
然後我們再來run一下這個程式,又會報錯,應該是無法在本地找到這個包。這是因為在這裡必須要將github上面的包先下載下來,再來import
下載的命令為:
go get github.com/lib/pq
但是首先,我們要確保我們的主機可以和github的伺服器連線上,如果直接執行上面的命令,會提示:
Permission denied (publickey).
這是因為主機的公鑰沒有提交給github.com,解決方法為:
1. 配置conf檔案
[email protected]:~$ vim ~/.ssh/config
新增:
Host github.com
HostName github.com
Port 22
IdentityFile ~/.ssh/id_rsa.pub
2.在github.com上登陸
3. 點開頭像旁邊的箭頭,點入setting
4. 點選SSH and GPG keys
5. 在SSH keys旁邊點選 New SSH key
6. 命令列輸入 vim ~/.ssh/id_rsa.pub (如果沒有公鑰,則輸入ssh-keygen -t rsa 生成公鑰,如果沒有ssh包,則apt-get install openssh-server), 將檔案中的字元全部copy
7. 將copy的公鑰貼上到github.com的SSH key設定中,點選Add。
8. 命令列輸入
[email protected]:~$ eval "$(ssh-agent -s)"
[email protected]:~$ ssh-add
9. 嘗試 ssh -T [email protected],如果配置正確,會出現
Hi Username!You've successfully authenticated, but GitHub does not provide shell access.
10. 然後使用go get github.com/lib/pq, 如果報錯類似:
Username for 'https://github.com': terminal prompts disabled
那麼使用命令
env GIT_TERMINAL_PROMPT=1 go get github.com/lib/pq
然後就可以在Go檔案中import github.com的包了。