Go抓取網頁資料並存入MySQL和返回json資料<一>

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

前言

很久前就想學習GO,但是由於準備讀研和要實習就一直耽擱沒動手,只是偶爾看一下相關的基本文法,並沒有將其具體地運用到實際的編碼中。大四了,課程一下子少了很多,於是決定用它從網上抓一些圖片資料,然後提供介面,為後面學習iOS提供一些網路資料。

有關GO的介紹我就不在這裡說了,對於我這種初學者本來說得就不清不楚,多給自己落下話柄。
我要實現的功能主要有如下幾點:

  • 從精美圖片網站抓取圖片連結等資料;

  • 將擷取的資料存入MySQL資料庫;

  • 提供一個簡單的json介面使得自己能通過某連結擷取json資料。

準備工作

安裝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.godatabase.go檔案。一個與抓取資料有關,一個與資料庫存取資料有關。
檔案夾結構如下:

indiepic├── README.md├── crawldata│   ├── crawldata.go│   └── database.go└── indiepic.go

下一步就開始實現資料抓取部分的功能。
主要抓取圖片網站 http://www.gratisography.com/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.