写个简单的URL来抓取相应的网页内容,然后存入本地文件

优采云 发布时间: 2021-08-02 23:10

  写个简单的URL来抓取相应的网页内容,然后存入本地文件

  今天写一个简单的程序,根据指定的URL抓取对应的网页内容,然后保存到本地文件中。本课程将涉及网络请求、文件操作等知识点。以下是实现代码:

  // 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参数,这里暂时指定为百度。我还是希望 Google 在不久的将来回归:

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

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线