golangで特定のurlをクロールしてそのurl以下のurlを出力する
画像クローラーの制作の一環でタイトルのようなことをすることがあったんで、その知見を載せておきます。とりあえず、以下のようにやりました。
とりあえず、特定のurl以下のurlの数、(ここではresultsの要素数)まで関数を回し続ける、といったような感じです、う~ん、なんかもっといい方法があるような、、、って感じです。
L: for _, urrrl := range urls { urrl := urrrl.String() for e := 0; e < len(stock); e++ { if urrl == stock[e] { continue L } }
同じurlにもう一度リクエストを投げたりなんてすることがないように、一度呼んだurlはスライスに格納して、関数内にマッチするかどうかの条件節を置いて、マッチする、即ち既に呼んだurlならばリストを使ってもう一度その関数をまわすようにしました。
if !strings.Contains(urrl, base) { continue L }
また特定のurl以下を呼ばなければならないので、文字列に特定のurlを含むかどうかを条件として、含まないようであれば、またリストを使って関数を回してあげることにしました。
以上のような感じでやってはみたのですが、量が多すぎるため、クロールしきれないです、たぶん書き方によってはどうにかなるとはおもうのですが、、、助言などしてもらえれば助かります。