基金分析系统(四):爬取基金详情信息
1. 爬取逻辑流程

2. 准备工作
2.1 分析网页

2.2 编写结构体
根据上面的网页分析,可以根据div[class='txt_cont']选中table,然后根据第n行第x列,来编写对应的结构体,如下:


根据上面的网页分析,可以根据div[class='txt_cont']选中table,然后根据第n行第x列,来编写对应的结构体,如下:


代码文件位置:service/crawl/fund/top_crawl.go
|
|
td:nth-of-type(n)代表每行的第n列,@注意:这里的NetWorth和TopDate,取的都是第3列的数据
数据模型指的是和表结构一一对应的结构体,通过编写结构体可通过迁移直接创建表结构,后续作为对表的增删改查的参数。
文件:model/entity/user.go
使用Go开发《基金数据分析系统》,项目系统框架是基于gin-api-template的基础上做二次开发,该系统计划完成功能,主要有: 基金数据(概括、持仓、历史业绩、财务报表)爬取、基金相似度对比、用户管理等功能。
Go语言标准包(net/rpc)已经提供了对RPC的支持,而且支持三个级别的RPC:TCP、HTTP和JSONRPC。但Go语言的RPC包是独一无二的RPC,它和传统的RPC系统不同,它只支持Go语言开发的服务器与客户端之间的交互,因为在内部,它们采用了Gob来编码。
RPC(Remote Procedure Call,远程过程调用)是一种进程间的通信方式,它是一种技术思想(概念),而不是规范,它允许程序调用另一个地址空间(通常是共享网络的另一台机器)的过程函数,而开发者无需额外地为这个调用过程编写网络通信相关代码细节。
Elasticsearch是一个分布式、可扩展、近实时的高性能搜索与数据分析引擎。在Go中经常使用的包有以下两个:
| 包 | 文档 | Star 数量 |
|---|---|---|
| olivere/elastic | https://olivere.github.io/elastic/ | 5.7k |
| elastic/go-elasticsearch | https://github.com/elastic/go-elasticsearch | 3.2k |
这里使用olivere/elastic
logrus是目前 Github 上 star 数量最多的日志库,截止今天star数量为17.3k 。logrus功能强大,性能高效,而且具有高度灵活性,提供了自定义插件的功能。
redis官网推荐使用redigo(https://github.com/gomodule/redigo),截止到今天Github Start是8.2k 但go-redis(https://github.com/go-redis/redis)使用的人更多, 并且go-redis封装得更好。截止到今天Github Start 是10.8k。
|
|
|
|
文件: app/config/mysql_config.go