当前位置: 首页 > news >正文

新浪财经股票每天10点自动爬取

老规矩还是先分好三步,获取数据,解析数据,存储数据

因为股票是实时的,所以要加个cookie值,最好分线程或者爬取数据时等待爬取,不然会封ip

废话不多数,直接上代码

import matplotlib
import requests
import time
import schedule
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import rcParams
matplotlib.use('TkAgg')
def get_xinlang_data():
    headers = {
        'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Mobile Safari/537.36 Edg/134.0.0.0',
        'Referer': 'https://vip.stock.finance.sina.com.cn/mkt/',
        'Cookie': 'UOR=cn.bing.com,k.sina.com.cn,; SINAGLOBAL=118.254.108.55_1712628055.839346; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%22192dc63c23a4cc-0d88f469598c1d8-4c657b58-1327104-192dc63c23b16f0%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E5%BC%95%E8%8D%90%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.nowcoder.com%2F%22%7D%2C%22identities%22%3A%22eyIkaWRlbnRpdHlfY29va2llX2lkIjoiMTkyZGM2M2MyM2E0Y2MtMGQ4OGY0Njk1OThjMWQ4LTRjNjU3YjU4LTEzMjcxMDQtMTkyZGM2M2MyM2IxNmYwIn0%3D%22%2C%22history_login_id%22%3A%7B%22name%22%3A%22%22%2C%22value%22%3A%22%22%7D%2C%22%24device_id%22%3A%22192dc63c23a4cc-0d88f469598c1d8-4c657b58-1327104-192dc63c23b16f0%22%7D; SFA_version8.9.0=2025-03-19%2019%3A06; SR_SEL=1_511; vjuids=-7b64b517d.195ae26e9d8.0.8336211e80edc; vjlast=1742383541; FIN_ALL_VISITED=sh600519%2Csh600010; FINA_V_S_2=sh600519,sh600010; SGUID=1742386149579_47511117; _clck=xb0ipd%7C2%7Cfuc%7C0%7C1904; SFA_version8.10.0=2025-04-04%2010%3A09; Apache=175.2.169.138_1743732843.387460; SFA_version8.10.0_click=1; hqEtagMode=1; ULV=1743732861648:8:2:2:175.2.169.138_1743732843.387460:1743732842772; rotatecount=2'
    }
    all_data = []
    for page in range(1, 14):
        url = f'https://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHKStockData?page={page}&num=40&sort=symbol&asc=1&node=sgt_hk&_s_r_a=page'
        response = requests.get(url, headers=headers)

        # 检查请求是否成功
        response.raise_for_status()
        data = response.json()
        all_data.extend(data)
    # 将数据转换为 DataFrame
    df = pd.DataFrame(all_data)
    print(df)
    # 保存数据到 CSV 文件
    df.to_csv('xinlang.csv', index=False, encoding='utf-8')
    print(f'Data saved to xinlang.csv')
def job():
    print('Fetching and saving data...')
    get_xinlang_data()

# 绘制图形
def draw():

    # 读取 CSV 文件
    df = pd.read_csv('xinlang.csv')

    # 设置图形大小
    plt.figure(figsize=(14, 8))

    # 设置支持中文的字体
    rcParams['font.sans-serif'] = ['SimHei']  # 或 'Noto Sans CJK SC'
    rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

    # 绘制 changepercent
    plt.subplot(2, 2, 1)
    plt.bar(df['name'], df['changepercent'], color='blue')
    plt.title('Change Percent')
    plt.xlabel('Stock Name')
    plt.ylabel('Change Percent')
    plt.xticks(rotation=90)
    plt.tight_layout()

    # 绘制 buy
    plt.subplot(2, 2, 2)
    plt.bar(df['name'], df['buy'], color='green')
    plt.title('Buy Volume')
    plt.xlabel('Stock Name')
    plt.ylabel('Buy Volume')
    plt.xticks(rotation=90)
    plt.tight_layout()

    # 显示图形
    plt.show()
if __name__ == "__main__":
     job()
    draw()

## 设置定时任务,每天10点进行爬取
schedule.every().day.at("10:00").do(job)

# 实现任务定时调度
 while True:
     schedule.run_pending()
     time.sleep(1)

注意:绘制那儿有点问题,我还没弄懂绘制图形怎么弄的,所以大家可以把draw函数先屏蔽掉,或者有人会的话可以评论指导一下。


文章转载自:
http://candlelight.hdqtgc.cn
http://accelerando.hdqtgc.cn
http://adoratory.hdqtgc.cn
http://castile.hdqtgc.cn
http://amy.hdqtgc.cn
http://agglutinogen.hdqtgc.cn
http://blush.hdqtgc.cn
http://ballyrag.hdqtgc.cn
http://astrobiology.hdqtgc.cn
http://chiropractic.hdqtgc.cn
http://beardtongue.hdqtgc.cn
http://affair.hdqtgc.cn
http://adjourn.hdqtgc.cn
http://assize.hdqtgc.cn
http://aiee.hdqtgc.cn
http://ambilingnal.hdqtgc.cn
http://agglutinin.hdqtgc.cn
http://boarder.hdqtgc.cn
http://caliche.hdqtgc.cn
http://arete.hdqtgc.cn
http://cheekiness.hdqtgc.cn
http://amadis.hdqtgc.cn
http://anticlastic.hdqtgc.cn
http://catch.hdqtgc.cn
http://arbitrageur.hdqtgc.cn
http://christianity.hdqtgc.cn
http://alpinist.hdqtgc.cn
http://adventuresome.hdqtgc.cn
http://albania.hdqtgc.cn
http://chalan.hdqtgc.cn
http://www.dtcms.com/a/111365.html

相关文章:

  • 免费送源码:Java+SSM+Android Studio 基于Android Studio游戏搜索app的设计与实现 计算机毕业设计原创定制
  • Springboot + Vue + WebSocket + Notification实现消息推送功能
  • 接口自动化学习四:全量字段校验
  • L1-100 四项全能(测试点1)
  • 计算机网络知识点汇总与复习——(三)数据链路层
  • 在VMware下Hadoop分布式集群环境的配置--基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置
  • Leetcode 33 -- 二分查找 | 归约思想
  • 【YOLO系列(V5-V12)通用数据集-交通红黄绿灯检测数据集】
  • SpringBoot集成swagger和jwt
  • Flask学习笔记 - 模板渲染
  • 深入探究 Hive 中的 MAP 类型:特点、创建与应用
  • 【Linux系统编程】进程概念,进程状态
  • 第三期:深入理解 Spring Web MVC [特殊字符](数据传参+ 特殊字符处理 + 编码问题解析)
  • 游戏编程模式学习(编程质量提升之路)
  • 25.4.4错题分析
  • Linux: network: 两台直连的主机业务不通
  • 【移动编程技术】作业1 中国现代信息科技发展史、Android 系统概述与程序结构 作业解析
  • Leetcode——150. 逆波兰表达式求值
  • 【小沐杂货铺】基于Three.JS绘制三维数字地球Earth(GIS 、three.js、WebGL、vue、react)
  • 平台总线---深入分析
  • transforms-pytorch4
  • 要素的选择与转出
  • 阿里云服务器遭遇DDoS攻击有争议?
  • 在MacOS 10.15上使用MongoDB
  • 洛谷题单3-P4956 [COCI 2017 2018 #6] Davor-python-流程图重构
  • linux signal up/down/down_interruptiable\down_uninterruptiable使用
  • 机器视觉工程师的专业精度决定职业高度,而专注密度决定成长速度。低质量的合群,不如高质量独处
  • linux 命令 awk
  • 洛谷题单3-P1217 [USACO1.5] 回文质数 Prime Palindromes-python-流程图重构
  • eBay新规倒计时:您的店铺配送方案即将被系统默认修改