見出し画像

エンジニア採用担当がプログラミング頑張る話【3日目/2ヶ月間】

こんにちは、@hiroki_maekawaです。

【エンジニア採用担当がプログラミング頑張る企画】の第3日目。

今週のゴールはこれです。

スクリーンショット 0032-05-24 22.45.01

スクリーンショット 0032-05-24 22.46.42

今日の目標

1. クローラーについての理解

2. クローラーを作るには何を学べは良いか?調べる

3. 何かしらコードを書いてみる


1. クローラーについての理解

・まずクローラーとは?
→インターネット上を巡回し、Webサイト・文書・画像・動画などのデータを収集・保存するプログラムのこと。

・どんな時に使われるか?

→Web上に情報を一箇所にみやすく集めたい時
→膨大な情報を収集して分析したい時
→クローラーが活躍することで、インターネットにあるあらゆる情報をググることができてる(なんで公開したてのWebサイトはググれなくて、どうやったらそのWebサイトはググれるようになるのか、という下記リンクの解説がいちばんしっくりきた!)

・クローラーは実際どんなことをしてるのか?
→(例)
①ダウンロード:Webサイトにアクセスし、HTML等のページを全てダウンロードする
②分解:ダウンロードしたページから、ほしい情報を抜き出す
③保存:取得したものをデータベースに保存する

この3段階の流れ(主に①〜②)を繰り返していくことをクローリングと言うみたい。

・スクレイピングとクローラーの違いとは?
→スクレイピングは「こする」「削る」という意味があるように、何かデータや情報から余分な物を削り取って抽出することを言う。
→対してクローラーは、「徘徊」「水泳のクロール(回してるイメージ)」というように、Web上をプログラムで巡回して何かをすることを言う。


2. クローラーを作るには何を学べは良いか?

ここで、仮説を立てました。

スクリーンショット 0032-05-24 22.45.01

課題はクローラーを作る(golang)(テストを書く)だったので、下記事項が実現できればクローラーを作れるのではないか?

・Golangを使って、Webサイトにアクセスする
・Golangを使って、WebサイトのHTML等のページを全てダウンロードする
・Golangを使って、ダウンロードしたページからほしい情報を抜き出す
・Golangを使って、ほしい情報をデータベースに保存する


3. 何かしらコードを書いてみる

ここまで色々調べて→仮説を立てた時点で、「Golangのこと何も分からんな。。」と思ったので、早速Goのチュートリアルをやることにしました。

下記、ただのメモです。

【用語】コードをフォーマットする=コードの体裁を整えて読みやすくすること
【用語】gofmt コマンド=Goのソースコードをフォーマットしてくれるツール
【用語】シンタックスハイライト=読みやすくするためにソースコードに色をつけること
【用語】import=データを取り込む、入れること

・カッコでくくれる
import (
"fmt"
"math"
)

・int 型は変数の1つで、そこに整数を入れて良いよ、というやつ(語彙力)
・string型は変数の1つで、そこに文字を入れて良いよ、というやつ(語彙力)

【用語】ステートメント=命令文

ただ小一時間チュートリアルをやったところで、「これだと仮説検証までいくのに100万年かかってまう。。」思ったので、Goをインストールして、実際にコードを書いてみることにしました。


4. GoをMacにインストール

調べてみると、GoをMacにインストールするには事前準備でHomebrewのインストールが必要らしく、まずはHomebrewのインストールを行いました。
(Homebrewを使えば、Goをターミナルからコマンドを打つだけでインストールできるらしい。)

打ったコマンドは下記の3つ。最後Homebrewのコマンド一覧が表示されたのでちゃんとインストールできたみたい。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
"自分のPCにログインする時のパスワード"
$ brew help

お次はGoのインストール。

$ brew install go

これで一発でインストール完了しました。めっちゃ簡単。

$ go version
go version go1.14.3 darwin/amd64

前回みんなでVScodeを使ってコードを書いたので、今回もここでgoも書けば良いのか?と思い、VScodeのアドオンをインストールしてみた。
【用語】アドオンとは、ソフトウェアなどをパワーアップさせる「新機能追加ソフト」のこと。

スクリーンショット 0032-05-26 1.48.50

この後PATH、環境変数、BASHってなんやねん!!!の2時間が始まります。
結局分からずに下の感想まで書いてしまいました(笑)

さいごに

とりあえず、今日はゴールを達成するために何をしなきゃいけないか?仮説を立ててみました。

その後、Goを理解するためにチュートリアルでいくつかコードは書いてみましたが、使えるコードを学んだ感はなく。。実際にVScodeで意味ありげなコードをGo書いてみようと思ったら、最後の方でつまずくという何とももどかしい1日でした。

。。ただ、寝ようと思ってた時にある方からのブログへのコメントでもう一踏ん張りしようと決意し、何とか下記の方法で環境変数の設定、その後VScodeを使って$GOPATHの下に、色々インストールできました!

(結局なんでこれを行わなければならないのかという意味は理解できませんでしたが。。)応援のコメント下さった方、本当にありがとうございました。

スクリーンショット 0032-05-26 3.31.49


意識もうろうとしながら頑張ったところ

PASSの設定について、ある人は

http://sagantaf.hatenablog.com/entry/2020/02/08/221720

export GOPATH=$HOME/golang/go
export PATH=$GOPATH/bin:$PATH
export GO111MODULE=on

【用語】PATHを通すとは、コマンド検索パス(コマンドサーチパス)を追加すること。
またある人は

https://qiita.com/ochipin/items/cae787d75ae91247c722

export GOPATH=$HOME/.go/vendor # GOPATH を設定
export PATH=$HOME/.go/go/bin:$GOPATH/bin:$PATH # go コンパイラのパスを通す
export GO111MODULE=on # go1.13 からはデフォルト on になるそうなので、onにしてしまう

またまたある人は

https://okashimoze.jp/blog/go/331.html

export GOPATH="$HOME/go"
export PATH="$GOPATH/bin:$PATH"

最後に見た人がこの設定で、上と同じだったのでこれでやってみました

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin


さいごに(2回目)

今日でGoの環境設定が整ったようなので、明日はPATHの理解を試みて、実際にGoを書いていきたいと思います。

それではまた!

この記事が気に入ったらサポートをしてみませんか?