c 抓取网页数据(根据指定URL来抓取相应的网页内容,而后存入本地文件)
优采云 发布时间: 2022-03-19 23:03c 抓取网页数据(根据指定URL来抓取相应的网页内容,而后存入本地文件)
今天写一个简单的程序,根据指定的URL爬取对应的网页内容,然后存入本地文件。本课程将涉及网络请求、文件操作等知识点。以下是实现代码:bash
// fetch.go
package main
import (
"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() 方法,它是三种格式化方法之一:url
编译后运行程序,指定一个URL参数,暂时指定为百度。还是希望谷歌能在不久的将来回归:指针
$ ./fetch http://www.baidu.com
运行程序后,会在当前目录下生成一个site.txt文件。代码