分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

Golang系列文章:抓取网页内容

发布时间:2023-09-06 02:13责任编辑:彭小芳关键词:暂无标签

今天写个简单的程序,根据指定的URL来抓取相应的网页内容,然后存入本地文件。这个程序会涉及到网络请求和文件操作等知识点,下面是实现代码:

// fetch.gopackage mainimport ( ???"os" ???"fmt" ???"net/http" ???"io/ioutil")func main() { ???url := os.Args[1] ???// 根据URL获取资源 ???res, err := http.Get(url) ???if err != nil { ???????fmt.Fprintf(os.Stderr, "fetch: %v\n", err) ???????os.Exit(1) ???} ???// 读取资源数据 body: []byte ???body, err := ioutil.ReadAll(res.Body) ???// 关闭资源流 ???res.Body.Close() ???if err != nil { ???????fmt.Fprintf(os.Stderr, "fetch: reading %s: %v\n", url, err) ???????os.Exit(1) ???} ???// 控制台打印内容 以下两种方法等同 ???fmt.Printf("%s", body) ???fmt.Printf(string(body)) ???// 写入文件 ???ioutil.WriteFile("site.txt", body, 0644)}

上面的代码中,我们引入了net/http网络包,然后调用http.Get(url)方法获取URL对应的资源,之后读取出资源数据,然后在控制台打印,并将内容写入到本地文件中。

需要注意的是,在读取资源数据完毕后,应该及时将资源流关闭,避免出现内存资源的泄露。

另外,在处理异常时,我们使用了fm.Fprintf()这个方法,它是格式化三大方法之一:

Printf: 格式化字符串并输出到os.Stdout中。
Fprintf: 格式化字符串并输出到指定文件设备中,所以参数比printf多一个文件指针FILE*
Sprintf: 格式化字符串并输出到指定字符串中,所以参数比printf多一个char*,那就是目标字符串地址。

编译后运行程序,并指定一个URL参数,这里暂时指定为百度吧,还是希望Google近期能够回归:

$ ./fetch http://www.baidu.com

运行完程序,在当前目录中会生成一个site.txt文件。

Golang系列文章:抓取网页内容

原文地址:https://www.cnblogs.com/liuhe688/p/9597749.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved