获取网页html内容

                                                                    获取网页html内容

一、前言:转载地址

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

二、代码

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"os"
)

func main() {
	//待获取的网页数据
	//url := os.Args[1]
	url := "https://blog.csdn.net/qq_36025814/article/details/85061666"

	// 根据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*,那就是目标字符串地址。

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值