Golang で正規表現を用いて雑にURLを取得する

退職エントリーが予想以上に伸びたので健全な技術ブログを保つため雑な備忘録貼っておきます。 敷居はなるべく低くブログを更新を続けるために昼休憩的な雰囲気だけ持ってやっていきます。

syu-m-5151.hatenablog.com

コード

普通に実行すれば値を取得することができます。

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "regexp"
)

func main() {
    // url の指定
    url := "https://3-shake.com/"
    // 正規表現の作成
    re, err := regexp.Compile("http(.*)://(.*)")
    if err != nil {
        return
    }
    // net/http でのリクエストの発射
    resp, _ := http.Get(url)
    defer resp.Body.Close()
    // []byte でリクエストの中身を取得
    byteArray, _ := ioutil.ReadAll(resp.Body)
    // 正規表現にあったものを全てlinks に入れる
    links := re.FindAllString(string(byteArray), -1)
    for i := 0; i < len(links); i++ {
        fmt.Println(links[i])
    }
}

実行

雑に取得できた。ここから純粋なURLを取得するのは適当に置換してあげれば良いと思います。 mac でのコピペはpbcopy が便利なことを知ったので非常に楽です。

https://3-shake.com/wp-content/themes/3-shake/assets/images/favicon/favicon.ico">
https://3-shake.com/wp-content/themes/3-shake/assets/images/favicon/favicon_180x180.png">
https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&amp;display=swap" rel="stylesheet">
https://common.3-shake.com/assets/css/3-shake_icons.css" rel="stylesheet">
~~~