這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
前言
很久前就想學習GO
,但是由於準備讀研和要實習就一直耽擱沒動手,只是偶爾看一下相關的基本文法,並沒有將其具體地運用到實際的編碼中。大四了,課程一下子少了很多,於是決定用它從網上抓一些圖片資料,然後提供介面,為後面學習iOS
提供一些網路資料。
有關GO
的介紹我就不在這裡說了,對於我這種初學者本來說得就不清不楚,多給自己落下話柄。
我要實現的功能主要有如下幾點:
準備工作
安裝GO並配置環境
因為我自己使用的時OS X
,也寫了一個mac安裝GO的文章,如果使用mac的話可以參考一下。windows下百度也會很好解決。
分析小程式
在$GOPATH/src
下的建立一個專案檔夾indiepic
作為這次小程式的目錄。GO的每一個項目有且僅有一個package main
,在專案檔夾下建立一個GO檔案indiepic.go
作為主檔案:
package mainimport "fmt"func main () { fmt.Println("Hello World")}
因為後面會啟動該檔案,然後提供HTTP
介面提供資料,所以為了可讀性將抓取資料並存入資料庫等操作放入該項目的一個包
中,而且抓取資料的操作會很少被操作,不需要在每次啟動都執行,所以將其組織到一個package
中是不錯的方法,這樣只需在需要抓取的時候在main
函數中調用介面。
因此,在專案檔夾中建立一個crawldata
檔案夾,該檔案就是我們需要的package
。下面需要的抓取資料和將資料存入資料庫以及從資料庫中擷取資料都寫為該包下的一個函數。
在crawldata
檔案夾下建立crawldata.go
和database.go
檔案。一個與抓取資料有關,一個與資料庫存取資料有關。
檔案夾結構如下:
indiepic├── README.md├── crawldata│ ├── crawldata.go│ └── database.go└── indiepic.go
下一步就開始實現資料抓取部分的功能。
主要抓取圖片網站 http://www.gratisography.com/