10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

初めてGoを触って、スクレイピングっぽいことをしてみるまで

Last updated at Posted at 2016-03-12

Go触ってみた

遅ればせながらGoを触ってみたのでまとめてみる。
題材はとりあえずTSUTAYAさんのWebサイトからDVDレンタル情報をスクレイピング、ということにしてみた。
コードを書くトコロはすんなり行ったんだけど、環境面とかお作法的なところでところどころハマったので、自分メモも兼ねてまとめておく。

まだ触って数時間なので、いろいろ間違えてるところがあるかも。ぜひ教えていただきたいです。

セットアップからHello Worldまで

  • OSはUbuntu 14.04

install

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:ubuntu-lxc/lxd-stable
$ sudo apt-get update
$ sudo apt-get install golang

環境変数GOPATHをセットする必要があるが、場所は自由でいいみたい。
$HOME/.goとした

$ mkdir $HOME/.go
$ echo 'export GOPATH=$HOME/.go' >> ~/.zshrc

install vim-go

call dein#add('fatih/vim-go')

hello world

mkdir ~/workspace/hello_go
cd ~/workspace/hello_go
vim main.go
package main

import "fmt"

func main() {
  fmt.Printf("Hello world\n")
}
# run
go run main.go
=> Hello world

# build
go build

スクレイピングしてみる

TSUTAYAさんのレンタル情報ページ ( http://store-tsutaya.tsite.jp/top/rels/dvd_rental.html )から、DVDのタイトルとレンタル開始日を抜いてきて標準出力に出す。

コードは長くなったのでgithub。
一応、goらしさを出そうと思ってスクレイピング処理はgoroutineで並列処理にしています。

ハマったポイント

  1. プロジェクトディレクトリをGOPATH以下に置かない
    • 最初GOPATH/src/以下で書いてたんですが、ファイル分けた時にGOPATH以下だとpackageのlocal importが出来ないみたいです。
  2. プロジェクトディレクトリ名と同じpackage名にするとgo buildコケる
    • dvd_rental_scraperみたいなディレクトリ掘って←みたいなパッケージ名にして、go buildするとディレクトリがすでにあるよ!みたいなエラーでgo build失敗しました。なのでpackageはtsutayaに変更しています。
10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?