package main import ( "bufio" "fmt" "io" "log" "net/http" "os" "strconv" ) func main() { //http://www.image-net.org/search?q=hotdog savelog() //create directory webOutput _ = os.Mkdir("imgs", os.ModePerm) readLinks("imagesLinks.txt") } func readLinks(path string) { inFile, _ := os.Open(path) defer inFile.Close() scanner := bufio.NewScanner(inFile) scanner.Split(bufio.ScanLines) var i int for scanner.Scan() { log.Println(scanner.Text()) saveLinkToImg(scanner.Text(), i) //log.Println(strconv.Itoa(i) + "/" + strconv.Itoa(nLines)) log.Println(i) i++ } } func countLines(scanner *bufio.Scanner) int { var count int for scanner.Scan() { count++ fmt.Println(count) } return count } func saveLinkToImg(url string, i int) { response, err := http.Get(url) if err != nil { log.Println(err) return } defer response.Body.Close() //open a file for writing file, err := os.Create("imgs/" + strconv.Itoa(i) + ".png") check(err) // Use io.Copy to just dump the response body to the file. This supports huge files _, err = io.Copy(file, response.Body) check(err) file.Close() fmt.Println("Success!") }