这是 Golang
爬虫(狭义的说应该是网络爬虫)系列教程,也是我本人从零开始使用 Golang
进行爬虫学习的总结。
我是一个 PHP/Golang
开发工程师,同时对前端也有一定的经验,之前并没有 Golang
程序进行过爬虫。
文中的写法和格式风格都是依据经验和现学现用,如果有不符合代码规范或最佳实践的地方,还请不吝赐教。
为什么选择Golang爬虫
目前主流爬虫大多都是使用 Python
来实现,因为 Python
有很多爬虫的配套设施,单纯从开发效率和简单易用性来说,确实是最佳的选择。但是因为我本人对 Python
不是很熟悉,正好最近使用 Golang
比较多,索性就从零开始,基于 Golang
来试一试编写爬虫。
准备工作
-
网络爬虫概念
爬虫通俗来说就是抓取网页数据,比如说大家都喜欢的妹子图、小视频呀,还有电子书、文字评论、商品详情等等。
只要网页上有的,都可以通过爬虫爬取下来。
一般而言,爬虫需要以下几步:
- 找到需要爬取内容的网页
URL
- 打开该网页的检查页面(即查看HTML代码,按F12快捷键即可进入)
- 在HTML代码中找到你要提取的数据
- 写代码进行网页请求、解析
- 存储数据
- 找到需要爬取内容的网页
-
Golang
开发环境搭建,IDE
推荐Goland
,这个是真的好用,环境安装具体就不多说。 -
框架选择
Golang
现在有比较多的爬虫库可以选择,比如:本系列文章使用
colly
,不熟悉,没用过的同学,可以去github
看看文档。Colly是一个基于Go语言的灵活的爬虫框架,开箱即用,你会获得一些速率限制,并行爬行等支持。
Colly基本组件之一是Collector,Collector保持跟踪那些需要被爬取的页面,并且保持回调当页面被爬取的时候。
初始化项目
首先创建一个文件夹 golang-spider
进入文件夹运行命令初始化 go.mod
文件
关于 go.mod 使用,参考 Go go.mod详解
go mod init golang-spider
- 安装
colly
依赖
goget -u github.com/gocolly/colly
- 创建
cmd
文件夹,新建main.go
,写入下面空代码 :
package main
func main() {
}
接下来就该开始练手了
准备工作就绪,接下来就开始实战练手。