新手教程:Go 语言实现DoubanTop 250 数据爬取及保存到 CSV 和 Excel
在本教程中,我们将会详细讲解如何通过 Go 语言和 Colly 爬虫框架,爬取豆瓣电影 Top 250 的数据,并将结果分别保存到 CSV 和 Excel 文件中。通过这个项目,你可以学习如何使用 Go 进行网络爬虫,并把数据格式化保存下来。
技术栈
- 编程语言:Go
- 网络爬虫框架:Colly
- 数据保存格式:CSV 和 Excel
第一步:项目初始化
首先,我们需要在项目根目录下初始化 Go 模块。你可以通过以下命令完成:
go mod init "<项目仓库名>"
这个命令会生成一个 go.mod
文件,用于管理项目的依赖。
第二步:创建项目结构
-
创建
main.go
文件在项目根目录下创建一个
main.go
文件,这是整个程序的入口文件,包含主程序逻辑。 -
创建
output
文件夹为了存储输出的文件,我们在项目根目录下创建一个
output
文件夹,并在这个目录内创建两个文件:CSV.go
和EXCEL.go
。这两个文件分别用来保存爬取到的数据到 CSV 和 Excel 文件。 -
项目目录结构
├── main.go ├── output/ │ ├── CSV.go │ └── EXCEL.go └── go.mod
第三步:安装依赖
-
安装 Colly 框架
Colly 是一个强大的 Go 语言爬虫框架,可以轻松地从网页中提取数据。通过下面的命令安装 Colly:
go get -u github.com/gocolly/colly/v2
-
安装进度条依赖
为了让爬取过程更加直观,我们将使用
progressbar
包来显示爬取进度:go get -u github.com/schollz/progressbar/v3
-
安装 Excel 操作依赖
为了将数据导出到 Excel 文件,我们需要使用
excelize
包:go get -u github.com/xuri/excelize/v2
第四步:编写 CSV.go 文件
在 output/CSV.go
中,我们编写保存 CSV 文件的逻辑。该文件的作用是接受一个数据数组,并将其保存为 CSV 格式。
package utils
import (
"encoding/csv"
"os"
)
// SaveToCSV 将数据保存到 CSV 文件
func SaveToCSV(filename string, data [][]string) error {
file, err := os.Create(filename)
if err != nil {
return err
}
defer file.Close()
writer := csv.NewWriter(file)
defer writer.Flush()
// 写入表头
header := []string{
"标题", "类型", "评价"}
if err := writer.Write(header); err != nil {
return err
}
// 写入数据
for _, record := range data {
if err := writer.Write(record); err != nil {
return err
}
}
re