您当前的位置: 首页 >  Python

魔王不会哭

暂无认证

  • 5浏览

    0关注

    149博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python采集天天基金数据信息,买到中意的股,赚上一笔小钱~

魔王不会哭 发布时间:2022-01-17 15:14:46 ,浏览量:5

前言

嗨喽!大家好,这里是魔王~

赚了钱后我们在确定不能约束自己花钱大手大脚时,会想着借用外力来控制自己,让自己存点钱来买车买房

相信很多人会把钱存入基金中,保证自己不乱花钱的前提下还能赚小部分钱,毕竟蚊子再小也是肉啊~

但是怎么确定自己买的那支基金是处于上升趋势的呢 ? 请添加图片描述

那么本次课题:

Python爬取天天基金股票信息

基金:是定期定额投资具有类似长期储蓄的特点,能积少成多,平摊投资成本,降低整体风险。它有自动逢低加码,逢高减码的功能,无论市场价格如何变化总能获得一个比较低的平均成本, 因此定期定额投资可抹平基金净值的高峰和低谷,消除市场的波动性。只要选择的基金有整体增长,投资人就会获得一个相对平均的收益,不必再为入市的择时问题而苦恼。

知识点:
  • requests发送请求
  • 开发者工具的使用
  • json类型数据解析
  • 正则表达式的使用

请添加图片描述

模块安装:

按住键盘 win + r, 输入cmd回车 打开命令行窗口, 在里面输入 pip install 模块名

开发环境:
  • 版 本:python 3.8
  • 编辑器:pycharm 2021.2
代码实现
  1. 发送请求
  2. 获取数据
  3. 解析数据
  4. 多页爬取
  5. 保存数据
第一步:确定本次爬取网站

在这里插入图片描述 在这里插入图片描述

第二步:分析网站

一:打开开发者工具,按F12,或者右键点击检查 二:刷新网站,点击搜索工具,在搜索框内输入基金代码,点击搜索 在这里插入图片描述 三:找到数据所在的真实url 在这里插入图片描述

第三步:照思路敲下代码

请添加图片描述

首先所需导入模块
import requests     # 发送请求 第三模块
import re
import csv
添加请求头,做个小伪装
# 伪装: 请求头
# re 替换
# 1. 选中我们要替换内容
# 2. 按住键盘 ctrl + r
# 3. 在第一个框中 填写 (.*?): (.*)
# 4. 在第二个框中 填写 '$1': '$2',
# 5. 点亮星星 全部替换
headers = {
    'Cookie': 'HAList=a-sz-300059-%u4E1C%u65B9%u8D22%u5BCC; em_hq_fls=js; qgqp_b_id=7b7cfe791fce1724e930884be192c85e; _adsame_fullscreen_16928=1; st_si=59966688853664; st_asi=delete; st_pvi=79368259778985; st_sp=2021-12-07%2014%3A33%3A35; st_inirUrl=https%3A%2F%2Fwww.baidu.com%2Flink; st_sn=3; st_psi=20211216201351423-112200312936-0028256540; ASP.NET_SessionId=miyivgzxegpjaya5waosifrb',
    'Host': 'fund.eastmoney.com',
    'Referer': 'http://fund.eastmoney.com/data/fundranking.html',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
}
for page in range(1, 193):
    print(f'-------------------------正在爬取第{page}页内容-----------------------')
    # 后台实现接口逻辑有问题可能会导致我们爬取数据有很多重复值
    url = f'http://fund.eastmoney.com/data/rankhandler.aspx?op=ph&dt=kf&ft=all&rs=&gs=0&sc=6yzf&st=desc&sd=2020-12-16&ed=2021-12-16&qdii=&tabSubtype=,,,,,&pi={page}&pn=50&dx=1'
    # 1. 发送请求
    # : 发送请求成功结果
    response = requests.get(url=url, headers=headers)
    # 2. 获取数据
    data = response.text
    # 3. 解析数据 筛选数据 re
    # 第一个是我们正则表达式语法  第二个就是我们需要在哪里匹配
    data_str = re.findall('\[(.*?)\]', data)[0]
    # 4. 保存数据
    # 表格当中
    # 数据转型
    # 列表 元组
    # eval 可以帮助我们把字符串转变为 列表/字典/元组/整数类型/boolean/浮点类型...
    tuple_data = eval(data_str)
    for td in tuple_data:
        # 把td 变成列表
        td_list = td.split(',')
        # 4. 保存数据
        with open('股票.csv', mode='a', encoding='utf-8', newline='') as f:
            csv_write = csv.writer(f)
            csv_write.writerow(td_list)
        print(td)

请添加图片描述

运行结果在这里插入图片描述

在这里插入图片描述

关注
打赏
1665385393
查看更多评论
立即登录/注册

微信扫码登录

0.1181s