好久前就想學習GO
,可是因爲準備讀研和要實習就一直耽擱沒動手,只是偶爾看一下相關的基本語法,並無將其具體地運用到實際的編碼中。大四了,課程一會兒少了不少,因而決定用它從網上抓一些圖片數據,而後提供接口,爲後面學習iOS
提供一些網絡數據。數據庫
有關GO
的介紹我就不在這裏說了,對於我這種初學者原本說得就不清不楚,多給本身落下話柄。
我要實現的功能主要有以下幾點:json
從精美圖片網站抓取圖片連接等數據;小程序
將獲取的數據存入MySQL
數據庫;windows
提供一個簡單的json
接口使得本身能經過某連接獲取json
數據。網絡
由於我本身使用的時OS X
,也寫了一個mac安裝GO的文章,若是使用mac的話能夠參考一下。windows下百度也會很好解決。函數
在$GOPATH/src
下的建立一個項目文件夾indiepic
做爲此次小程序的目錄。GO的每個項目有且僅有一個package main
,在項目文件夾下新建一個GO文件indiepic.go
做爲主文件:學習
package main import "fmt" func main () { fmt.Println("Hello World") }
由於後面會啓動該文件,而後提供HTTP
接口提供數據,因此爲了可讀性將抓取數據並存入數據庫等操做放入該項目的一個包
中,並且抓取數據的操做會不多被操做,不須要在每次啓動都執行,因此將其組織到一個package
中是不錯的方法,這樣只需在須要抓取的時候在main
函數中調用接口。網站
所以,在項目文件夾中新建一個crawldata
文件夾,該文件就是咱們須要的package
。下面須要的抓取數據和將數據存入數據庫以及從數據庫中獲取數據都寫爲該包下的一個函數。編碼
在crawldata
文件夾下新建crawldata.go
和database.go
文件。一個與抓取數據有關,一個與數據庫存取數據有關。
文件夾結構以下:code
indiepic ├── README.md ├── crawldata │ ├── crawldata.go │ └── database.go └── indiepic.go
下一步就開始實現數據抓取部分的功能。
主要抓取圖片網站 http://www.gratisography.com/