• 奇妙的go语言(网页下载)



    【 声明:版权全部,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】  


        眼下,网上关于网页爬行的代码非常多。可是,自从看了go语言的web下载代码之后,我才发现原来它的网页下载代码才是最简单的。不信的话,大家能够看一下,

    package main
    
     import(
        "fmt"
        "log"
        "net/http"
        "os"
    )
    
     func main(){
    
        resp,err:=http.Get("http://www.baidu.com")
    
        if err!=nil{
    
            //handleerror
    
            fmt.Println(err)
    
            log.Fatal(err)
    
        }
    
        defer resp.Body.Close()
    
        if resp.StatusCode==http.StatusOK{
    
            fmt.Println(resp.StatusCode)
    
        }
    
        buf:=make([]byte,1024)
    
    
        //createfile
    
        f,err1:=os.OpenFile("baidu.html",os.O_RDWR|os.O_CREATE|os.O_APPEND,os.ModePerm)
    
        if err1!=nil{
    
            panic(err1)
    
            return
        }
    
        defer f.Close()
     
        for{
    
            n,_:=resp.Body.Read(buf)
    
            if 0==n{
    
                break
    
            }
    
            f.WriteString(string(buf[:n]))
    
        }
    }
    

       这当中大家能够注意这几个函数就能够了,各自是http.Get,os.OpenFile,resp.Body.Read,f.WriteString。能够想象一下这几个函数是做什么用的。事实上正如它们名字介绍的那样,它们的功能依次是http下载、创建文件、读取字符、写文件。不知道大家答对没有。有兴趣的朋友能够将这部分代码拷贝下来測试一下。


        假设我没有记错,这部分代码是从别处引用的。欢迎作者和我联系,我会在后面备注一下。




  • 相关阅读:
    mongodb 聚类查询 筛选时间
    异步线程
    性能优化
    何谓引继(引继码,继承码)?了解引继同备份不同,请注意!
    apktool 无法识别 requestLegacyExternalStorage 属性导致回编失败
    Jenkins GIT_SSH组件权限导致build失败的问题。
    Linux下 Nginx-uWSGI-Django 搭建
    SSH scp使用
    Django创建app及创建数据库
    正则表达式
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4042849.html
Copyright © 2020-2023  润新知