背景
经常看到和听到神经网络这个名词,觉得逼格很高。昨天看了一下机器学习的神经网络算法,是挺高级的,还蛮感兴趣,就是看不懂哈哈哈哈。在B站上看了一个《一小时大话BP神经网络》教我如何从入门到放弃(打脸)。里面涉及的数学统计知识太多了,可惜我是个数学白痴,但是对机器学习确实蛮感兴趣的,神经网络学不明白可以换个简单的机器学习模型试试。后来想着能不能用机器学习预测一下基金走势,随便玩玩不做投资建议,体验一下机器学习的高大上,等我撸出机器学习模型的demo也算是半个涉足过人工智能领域的大学生了哈哈哈哈哈哈哈哈。
这篇文章便是为了提供机器学习数据基础——收集基金信息。
整体思路
- 选择一个好爬的基金网页,这里以天天基金为例(网上关于天天基金爬取教程还蛮多的哈,可能是好抓包)
- 打开浏览器的开发工具,切换到network下,点击下一页基金,查看发送的ajax请求。很容易发现有个请求里的jason数据就是我们想要的数据,抓到包就可以开始撸代码了!
- 具体代码思路不细说了,看代码注释也比较详细了
源代码
import requests
import json
import re
import pandas as pd
df_list = [] #用于存放每页表格
for index in range(1,100): #index是url中的页码,在url中用占位符表示
url = 'http://api.fund.eastmoney.com/f10/lsjz?callback=jQuery1830730414064313736_1618137747657&fundCode=110023&pageIndex={}&pageSize=20&startDate=&endDate=&_=1618137795389'.format(index)
#请求头
headers = {
#防盗链 确定来路
'Referer': 'http://fundf10.eastmoney.com/',
#身份证
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36'
}
# 模拟浏览器发送请求 接收数据
resp = requests.get(url,headers=headers)
html = resp.text
res = re.findall('\((.*?)\)',html) #正则表达式把jquery....去掉
datas = json.loads(res[0])["Data"]["LSJZList"] # res是数组,要用res[0]表示
# json.loads 用于提取字符串中的json格式
# 整理成表的形式
df = pd.DataFrame(datas)
df_list.append(df) #apend方法:在表末尾添加元素
df_data = pd.concat(df_list)
df_data.to_csv('易方达医疗保健行业混合 (110023).csv',index=False) #index=false 表示不输出索引值
爬取结果
在工程文件路径下生成了一个.csv文件(.csv常用于数据分析)
把这支基金从出生到现在的数据都爬完啦,也就不到2000组(为了便于观看,列名已经修改)
以上就是数据收集的过程,不知道下篇能不能找到合适的机器学习模型建立,希望能找一个既简单拟合度又不是太离谱的模型吧😚😚😚