最近看到了一个Python爬取基金的实现,就心血来潮用Go语言实现了一个类似的版本:
github代码地址
0. 准备工作
-
选爬取的网站:
https://danjuanfunds.com/funding/005827?channel=1300100141 -
用Go语言的http包调用一下
resp, err := http.Get(url)
可以看到返回一个大JSON,然后挑选出里面我们需要的数据
1. 爬取数据
- 先读取
funds.json
文件里的基金代码,我们用这个拼到url里面就可以爬取不同的基金数据(crawler/fund_json.go
) - 然后根据上面我们挑选出有用的数据,定义结构体,用于json的反序列化(
crawler/crawler.go
)
重点代码如下:
resp, err := http.Get(url)
if err != nil {
return nil, err
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
fundsResp := FundsResp{
}
err = json.Unmarshal(body, &fundsResp)
if err != nil {
return nil, err
}
2. 存入MySQL
- 先安装MySQL
- 建表