用Golang写一个简单的爬虫

本文是一篇关于使用Go语言编写简单爬虫的教程,涵盖了Go的介绍、环境配置、基本Go程序编写,以及使用colly库创建爬虫的步骤。通过这个教程,读者将学习如何抓取网页内容、存储数据、设置代理、实现多线程和计划任务,甚至进行分词处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闲来无事写了一个比较简陋的爬虫,跟大家分享一下, 写的可能有点啰嗦,本来写的是文档,但是这里没办法上传文件,只能以这种方式给大家展示了,下面有很清晰的目录,也可以直接复制到文档中查看,方便目录指引。

《教程:使用go语言编写简单爬虫工具》
目录

  1. 在使用go之前首先了解什么是go: 8
  2. 安装go以及相关工具 8
    2.1. 安装go运行环境: 8
    2.2 安装git : 13
    2.3安装编译器VSCode: 18
    安装完成 21
  3. 写一个简单go程序 22
  4. 使用colly 做一个简单的爬虫工具 23
    4.1 最简单的爬虫,爬取网站的a链接内容: 23
  5. 功能扩展 25
    5.1 使用os,io包将爬取到的数据写入到文件中存储 25
    5.2 使用gin包将程序设置为一个web 服务 27
    5.3 使用proxy包设置IP代理池: 30
    5.4 使用sync包实现多线程: 33
    5.5 使用cron包将数据抓取添加为计划任务,每半小时执行一次 37
    5.6 使用gojieba包进分词管理,抓取指定内容 42

1.在使用go之前首先了解什么是go:
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。
Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括Occam和Limbo,但它也具有Pi运算的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。
与C++相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。Go 2.0版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。
不同于Java,Go内嵌了关联数组(也称为哈希表(Hashes)或字典(Dictionaries)),就像字符串类型一样。
2.安装go以及相关工具
2.1.安装go运行环境:
2.1.1 开始安装:
首先下载go安装包->https://studygolang.com/dl选择自己需要的版本进行下载,下载完成后进行安装
安装MSI文件或者zip压缩包版本解压,我下载的是:
https://studygolang.com/dl/golang/go1.12.5.windows-amd64.msi,下载完成后双击安装即可

点击Next下一步

选择I accept the terms in the License Agreement. 然后Next 下一步

选择安装目录

2.1.2. 安装完成后,设置环境变量:
打开我的电脑:

进入环境变量配置界面:

配置环境变量:
新建环境变量GOROOT(GOROOT变量值为go的安装目录,我安装的是D:\Go),根据自己的安装路径进行配置

配置path路径( win10 ),在后面path最后添加D:\Go\bin路径(必须是go安装目录下的bin文件):

如果是win7系统( 在路径最后面添加D:\Go\bin ),一定要注意,在添加路径之前一定要用“;”与前面的路径分隔(每个路径之间必须有“;”分隔),路径根据自己的安装路径修改:

2.1.3. 创建项目目录的环境变量:

接下来新建文件夹,作为自己的项目目录,我创建的目录是mygo:

然后继续新建环境变量GOPATH(此变量设置项目路径):

到此处环境变量就设置完成了,接下来测试是否全部设置成功,打开黑窗口(ctrl+r -> cmd) 输入 go env ,显示一下内容表示环境变量设置成功:

输入 go version,显示一下内容,go就可以安装完成了:

2.2 安装git :
如果不安装git 直接进行开发的话,在你引入github 包的时候你会发现出现以下错误:
go get github.com/gocolly/colly: git ls-remote -q
https://github.com/gocolly/colly In D:\mygo\pkg\mod\cache\vcs\eca8728ba98ac04ea7ee3526a26f0326ab6bc4f75745fbfbae6f13421595fd59: exec: “git”: executable file not found in %PATH%

因为github的包都是通过git管理,所以在 go get 包之前要先安装git:
下载git win64 安装包 :
https://github.com/git-for-windows/git/releases/download/v2.21.0.windows.1/Git-2.21.0-64-bit.exe下载完成后,双击安装程序,选择git 相关配置(默认即可):

点击install 开始安装程序,等待安装完成即可。

配置环境变量:打开环境变量配置页面(找不到重新看下上文第五页的打开方式),在path变量后面加上git 的安装路径下的bin目录,我的是D:\MyDownloads\Git\bin, 根据自己的安装目录添加即可。

测试是否安装完成, 打开黑窗口,输入git version查看git版本信息,到此git安装完成。

2.3安装编译器VSCode:
一个好的代码编译器可以极大地帮助我们进行很好的开发,比如Vscode.
首先去VsCode官网下载自己需要的版本,然后进行安装https://code.visualstudio.com/Download

选择我同意

选择安装路径

下一步

选择自己需要的功能后,下一步

点击安装

安装完成

3.写一个简单go程序
在开始写爬虫之前先写个小玩意测试一下,安装后的go是否可以正常编译,以确保后面的开发顺利。
首先在你的项目目录,也就是在安装go之后设置的环境变量GOPATH的目录,创建文件夹src,这个文件夹以后将存放你的所有项目。目录结构可以自己随意定义,但是一定要在src目录下

创建好文件夹后,开始写文件,创建文件main.go

文件中写一个简单的字符串输出(复制下面代码到你创建的文件):
逐行分析这段程序:
第一行是必须的。所有Go语言编写的文件都以package <*>开头,对于独立运行的执行文件必须是 package main;
第二行表示将fmt包加入main。一般非main的其他package(包)都被称为库,
第三行就是程序中的主函数。Go程序执行时候,首先调用的函数就是main函数。这个是从C中继承过来的。这里是main函数的函数定义。
第四行调用fmt包的函数打印字符串到屏幕。字符串由””包裹,并且可以包含非ASCII的字符。
一个独立的可执行的golang程序,package main是必须出现,紧跟在是引入的各种库,然后是各个函数,这里必须要有一个main函数。main函数是程序的入口。

package main    // 定义包名

// 引入需要的包
import(
"fmt"
)

// 定义一个方法main
func main(){

// 打印字符串
fmt.Println
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值