docs: 📓update Readme.md

main
jackluson 3 years ago
parent 410c1d03f9
commit e04685917d

@ -1,12 +1,27 @@
# 晨星基金数据爬取
### 前言
# Table of Contents
- [前言](#前言)
- [数据爬取](#数据爬取)
- [晨星列表数据](#晨星列表数据)
- [晨星基金详情页数据--不变数据](#晨星基金详情页数据--不变数据)
- [晨星基金详情页数据--季度变动数据](#晨星基金详情页数据--季度变动数据)
- [晨星基金详情页数据--十大持仓股票信息](#晨星基金详情页数据--十大持仓股票信息)
- [晨星基金经理](#晨星基金经理)
- [技术点](#技术点)
- [爬虫流程](#爬虫流程)
- [本地运行](#本地运行)
- [其他](#其他)
- [数据汇总](#数据汇总)
## 前言
晨星网,国际权威评级机构 Morningstar 的中国官方网站,所以它的基金评级是很有参考性的。
### 数据爬取
## 数据爬取
#### 1.晨星列表数据
### 晨星列表数据
> 爬取晨星网筛选列表,包括基金代码,基金专属代码,基金分类,三年评级,五年评级这些维度等,有了这些基本数据,为了爬取基金详情页,基金筛选等铺好数据基础。
@ -14,30 +29,30 @@
<img src="./screenshot/fund_list.png" style="zoom:50%;" />
#### 2. 晨星基金详情页数据--不变数据
### 晨星基金详情页数据--不变数据
> 爬取基金详情页的数据, 根据`晨星列表数据` 数据,遍历爬取单支基金的详情页数据(包括名称,代码,分类,成立时间,基金公司)等维度,后续还有根据这些数据爬取基金的持仓信息,为后面筛选股票做好进一步铺垫
<img src="./screenshot/fund_base.png" style="zoom:50%;" />
#### 3. 晨星基金详情页数据--季度变动数据
### 晨星基金详情页数据--季度变动数据
> 爬取基金详情页的数据, 根据第二部分`晨星基础数据` 数据,过滤掉货币,纯债基金,爬取单支基金的详情页数据(包括总资产,投资风格,各种风险信息,评级,股票,债券持仓比例等)等维度
<img src="./screenshot/fund_season.png" style="zoom:50%;" />
#### 4. 晨星基金详情页数据--十大持仓股票信息
### 晨星基金详情页数据--十大持仓股票信息
> 爬取基金详情页的数据, 根据第二部分`晨星基础数据` 数据,过滤掉没有持有股票的基金,爬取单支基金的十大持仓股票信息(包括每只股票的代码,名称,占比)等维度
<img src="./screenshot/fund_stock.png" style="zoom:50%;" />
#### 5. 晨星基金经理
### 晨星基金经理
> 爬取基金详情页的数据,据此爬取基金经理数据
> <img src="./screenshot/fund_manager.png" style="zoom:50%;" />
### 技术点
## 技术点
- `selenium` 模拟登录, 切换分页
- `BeautifulSoup` 解析 HTML
@ -45,7 +60,7 @@
- 工具 — 数据库用了`pymysql` , id 使用雪花 id验证码识别使用了`pytesseract`
- 多线程爬取
### 爬虫流程
## 爬虫流程
1. `selenium` 模拟登录:
- 可采用验证码识别方式
@ -54,13 +69,45 @@
3. `selenium` 模拟切换分页,重复第二,第三步
4. 所有的页数据爬取完,退出浏览器
### 本地运行
## 本地运行
`cp .env.example .env`
1. 修改本地环境变量
> `cp .env.example .env`
根据自己情况改环境变量值,例如晨星用户名,密码,执行特定的爬虫脚本
### 其他
2. 文件目录介绍
```bash
.
├── .env #本地环境配置参数
├── .env.example #环境配置参数模板实例
├── .gitignore
├── README.md
├── requirements.txt
└── src
├── acquire_fund_base.py # 爬取基金基础数据-- 一些不变动的数据,例如成立时间
├── acquire_fund_quarter.py # 爬取基金季度变动 -- 例如持仓数据
├── acquire_fund_snapshot.py # 基金列表快照数据 —— 列表数据
├── assets # 一些静态资源,例如星级图片
│   └── star
│   ├── star0.gif
│   ├── star1.gif
│   ├── star2.gif
│   ├── star3.gif
│   ├── star4.gif
│   ├── star5.gif
│   └── tmp.gif
├── fund_info_crawler.py # 封装的爬取class
├── fund_statistic.py # 统计数据
├── lib
│   └── mysnowflake.py # 雪花id生成
└── utils.py # 一些工具函数比如登录设置cookies等
```
## 其他
涉及到一些细节有:
@ -72,7 +119,7 @@
以上问题,我都做了相对应的处理。
### 数据汇总
## 数据汇总
基于上面的数据,简单做了如下数据汇总,统计股票在这些基金中出现的频率,可用于投资理财辅助,如图:

Loading…
Cancel
Save