关于爬虫爬取基金信息


背景

  经常看到和听到神经网络这个名词,觉得逼格很高。昨天看了一下机器学习的神经网络算法,是挺高级的,还蛮感兴趣,就是看不懂哈哈哈哈。在B站上看了一个《一小时大话BP神经网络》教我如何从入门到放弃(打脸)。里面涉及的数学统计知识太多了,可惜我是个数学白痴,但是对机器学习确实蛮感兴趣的,神经网络学不明白可以换个简单的机器学习模型试试。后来想着能不能用机器学习预测一下基金走势,随便玩玩不做投资建议,体验一下机器学习的高大上,等我撸出机器学习模型的demo也算是半个涉足过人工智能领域的大学生了哈哈哈哈哈哈哈哈。

  这篇文章便是为了提供机器学习数据基础——收集基金信息。

整体思路

  1. 选择一个好爬的基金网页,这里以天天基金为例(网上关于天天基金爬取教程还蛮多的哈,可能是好抓包)
  2. 打开浏览器的开发工具,切换到network下,点击下一页基金,查看发送的ajax请求。很容易发现有个请求里的jason数据就是我们想要的数据,抓到包就可以开始撸代码了!
  3. 具体代码思路不细说了,看代码注释也比较详细了

源代码

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常用于数据分析)

1

把这支基金从出生到现在的数据都爬完啦,也就不到2000组(为了便于观看,列名已经修改)

2


  以上就是数据收集的过程,不知道下篇能不能找到合适的机器学习模型建立,希望能找一个既简单拟合度又不是太离谱的模型吧😚😚😚


文章作者: Yuukyou
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Yuukyou !
评论
  目录