golang的一个简单小爬虫demo学习记录

之前学的是python,但是遇到瓶颈了,所以想先拓宽一下知识面。技术是学不完的,在这资本恒流的时代,两三年就能将一门语言炒到火热,所以还是要坚守本心,先生存再生活。

1.新建一个项目文件,创建一个main.go文件

2.遇到代码中import报红的部分,解决方法如下

(1)打开终端或cmd, 进入到你创建的项目的路径(例如我创建的项目文件夹是test)

(2)go mod init test(test就是你创建的文件夹的名称)

(3)go mod tidy

(4)如果还有其他报错请自行搜索

package main

import (
	"fmt"
	"github.com/PuerkitoBio/goquery"
	"log"
	"net/http"
)
func main()  {
	authors_url := "https://so.gushiwen.cn/authors/"
	res, err := http.Get(authors_url)    // 请求一个网站
	if err != nil{						//如果err不是nil,则说明请求发生了错误
		panic(err)
	}

	defer res.Body.Close()				// 请求完之后关闭请求窗口

	if res.StatusCode != 200{			// 如果状态码不为200,则说明请求网页失败
		log.Fatal("status code error: %d %s", res.StatusCode, res.Status)
	}

	// 调用NewDocumentFromReader传入上面的io.Reader构造一个*goquery.Document对象;
	document, err := goquery.NewDocumentFromReader(res.Body)
	if err != nil{
		fmt.Errorf("document eror", err)
	}
	// Find(".sons") 其中.表示class
	document.Find(".sons").Find(".cont").Find("a").Each(func(i int, selection *goquery.Selection) {
		author := selection.Text()
		link, _ := selection.Attr("href")					//获取href的值
		fmt.Printf("%d author=%s\n", i, author)
		fmt.Printf("%d link=%s\n", i, link)
	})
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值