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

Python爬虫实战:5分钟搞定东方财富网股票数据抓取(附完整代码)

Python爬虫实战5分钟搞定东方财富网股票数据抓取附完整代码最近在研究量化交易的朋友们可能深有体会——获取高质量的股票数据是第一步也是最让人头疼的一步。市面上虽然有各种数据接口但要么收费昂贵要么数据不全。今天我要分享一个实战技巧如何用Python快速抓取东方财富网的股票数据整个过程不到5分钟而且代码简单到连Python初学者都能轻松上手。1. 准备工作与环境配置在开始之前确保你的电脑已经安装了Python环境建议3.7以上版本。我们需要用到几个关键的Python库pip install requests pandasrequests用于发送HTTP请求获取网页数据pandas用于数据处理和Excel文件导出如果你打算长期使用这个爬虫建议配置一个虚拟环境python -m venv stock_env source stock_env/bin/activate # Linux/Mac stock_env\Scripts\activate # Windows2. 分析东方财富网的数据接口东方财富网的股票数据实际上是通过API接口提供的这比直接解析HTML要方便得多。通过浏览器开发者工具F12我们可以找到数据接口的URL模式https://7.push2.eastmoney.com/api/qt/clist/get?cbjQuery...pn1pz20...fidf3fsm:0t:6...这个URL有几个关键参数参数说明示例值pn页码1pz每页数据量20fid数据字段标识f3fs市场板块代码m:0t:63. 核心爬虫代码实现下面是完整的爬虫代码我已经做了详细注释import requests import re import pandas as pd # 设置请求头模拟浏览器访问 headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64), Referer: https://quote.eastmoney.com/ } def clean_api_response(text): 清理API返回的JSONP格式数据 # 移除JSONP回调函数包裹 text re.sub(r^.*?(?\(), , text, count1) text re.sub(r\);$, , text) return text def fetch_stock_data(market_code, page1): 获取指定市场和页面的股票数据 url fhttps://7.push2.eastmoney.com/api/qt/clist/get params { pn: page, pz: 20, fid: f3, fs: market_code, fields: f12,f14,f2,f3,f4,f5,f6,f7,f8,f9,f10,f15,f16,f17,f18,f23 } response requests.get(url, headersheaders, paramsparams) cleaned_data clean_api_response(response.text) return eval(cleaned_data) def get_all_stocks(market_name, market_code): 获取指定市场的所有股票数据 all_stocks [] page 1 while True: print(f正在获取 {market_name} 第 {page} 页数据...) data fetch_stock_data(market_code, page) if not data.get(data) or not data[data].get(diff): break for item in data[data][diff]: stock { 代码: item.get(f12, ), 名称: item.get(f14, ), 最新价: item.get(f2, 0), 涨跌幅: item.get(f3, 0), 成交量(手): item.get(f5, 0), 成交额: item.get(f6, 0), 市盈率: item.get(f9, 0) } all_stocks.append(stock) page 1 return pd.DataFrame(all_stocks) # 定义不同市场的代码 MARKETS { 沪深A股: m:0t:6,m:0t:80,m:1t:2,m:1t:23, 创业板: m:0t:80, 科创板: m:1t:23 } # 获取并保存所有市场数据 for name, code in MARKETS.items(): df get_all_stocks(name, code) df.to_excel(f{name}_股票数据.xlsx, indexFalse) print(f{name}数据已保存共{len(df)}条记录)4. 代码优化与实用技巧在实际使用中你可能需要做一些优化请求间隔添加适当的延时避免被封IPimport time time.sleep(1) # 每次请求间隔1秒错误处理增加重试机制from retrying import retry retry(stop_max_attempt_number3, wait_fixed2000) def fetch_stock_data(market_code, page1): try: # 原有代码... except Exception as e: print(f请求失败: {e}) raise数据更新只获取最新数据# 先读取已有的Excel文件 try: old_df pd.read_excel(沪深A股_股票数据.xlsx) old_codes set(old_df[代码]) except FileNotFoundError: old_codes set() # 只保留新股票 new_stocks [s for s in all_stocks if s[代码] not in old_codes]提示东方财富网的API有一定频率限制建议控制请求速度避免短时间内发送过多请求。5. 数据应用场景示例获取到的股票数据可以用于多种分析基本面分析利用市盈率、市净率等指标筛选股票技术分析计算各种技术指标量化策略作为量化交易的基础数据这里展示一个简单的市盈率筛选示例# 读取数据 df pd.read_excel(沪深A股_股票数据.xlsx) # 筛选市盈率在0-30之间的股票 good_pe df[(df[市盈率] 0) (df[市盈率] 30)] # 按市盈率排序 good_pe good_pe.sort_values(市盈率) print(f找到{len(good_pe)}只低估值股票) print(good_pe[[代码, 名称, 市盈率]].head(10))6. 常见问题与解决方案在实际使用中你可能会遇到以下问题返回数据为空检查market_code是否正确尝试更换User-Agent检查IP是否被封数据字段不匹配确认fields参数包含所需字段参考东方财富网页面显示的数据数据量太大增加每页数据量pz参数分市场、分时间段获取数据更新不及时东方财富网的数据通常有15分钟延迟对于实时性要求高的场景考虑其他数据源7. 进阶扩展思路如果你想进一步扩展这个爬虫可以考虑添加定时任务每天自动更新数据将数据存入数据库而非Excel增加更多数据字段和分析功能开发可视化界面展示数据# 示例使用APScheduler设置定时任务 from apscheduler.schedulers.blocking import BlockingScheduler def job(): print(开始定时获取股票数据...) # 调用之前的获取数据代码 scheduler BlockingScheduler() scheduler.add_job(job, cron, hour15, minute30) # 每天15:30运行 scheduler.start()这个爬虫虽然简单但已经能够满足大多数个人投资者的数据需求。我在自己的量化交易系统中就使用了类似的代码运行半年多来一直很稳定。对于初学者来说这个项目也是个很好的练手机会你可以尝试添加更多功能比如自动邮件发送数据报告、异常监控等。

相关文章:

Python爬虫实战:5分钟搞定东方财富网股票数据抓取(附完整代码)

Python爬虫实战:5分钟搞定东方财富网股票数据抓取(附完整代码) 最近在研究量化交易的朋友们可能深有体会——获取高质量的股票数据是第一步,也是最让人头疼的一步。市面上虽然有各种数据接口,但要么收费昂贵&#xff0…...

Nanobot插件开发指南:扩展OpenClaw功能的5种方式

Nanobot插件开发指南:扩展OpenClaw功能的5种方式 1. 引言 你是不是也遇到过这样的情况:用着OpenClaw觉得功能很不错,但总有些特定的需求它无法满足?比如想要一个专门处理Excel表格的技能,或者需要一个能跟你喜欢的第…...

Carsim双车仿真设置指南:从零开始构建两车场景

1. Carsim双车仿真基础概念 在车辆动力学仿真领域,Carsim是最常用的专业工具之一。很多工程师第一次接触双车仿真时都会感到困惑,其实只要掌握了几个关键点,设置起来并不复杂。我刚开始用Carsim做双车仿真时也踩过不少坑,后来慢慢…...

5个步骤打造随身智能的移动AI助手:ChatterUI全攻略

5个步骤打造随身智能的移动AI助手:ChatterUI全攻略 【免费下载链接】ChatterUI Simple frontend for LLMs built in react-native. 项目地址: https://gitcode.com/gh_mirrors/ch/ChatterUI 在这个信息爆炸的时代,我们每个人都需要一个随时待命的…...

SmolVLA效果对比:不同RTX显卡(4090/3090)下推理延迟与显存占用

SmolVLA效果对比:不同RTX显卡(4090/3090)下推理延迟与显存占用 1. 引言:为什么关心显卡性能? 如果你正在研究或部署机器人视觉-语言-动作模型,可能已经听说过SmolVLA。这个只有5亿参数的紧凑模型&#xf…...

Python炫技代码:用Tkinter打造动态数字雨

1. 数字雨效果的前世今生 第一次看到《黑客帝国》里的绿色数字雨特效时,我正坐在大学宿舍的二手显示器前啃着泡面。那些从屏幕顶端倾泻而下的字符流,像极了我们调试程序时控制台爆出的错误日志——只不过导演用艺术手法把它变成了赛博世界的象征符号。二…...

Gemma-3 Pixel Studio实战教程:上传多张图进行跨图对比推理操作指南

Gemma-3 Pixel Studio实战教程:上传多张图进行跨图对比推理操作指南 1. 工具概览与核心能力 Gemma-3 Pixel Studio是基于Google最新Gemma-3-12b-it模型构建的多模态对话终端,特别强化了视觉理解能力。与传统单图分析工具不同,它支持同时上传…...

OpenCV实战:用对极几何和三角测量还原3D场景(附Python代码)

OpenCV实战:从2D图像到3D场景的完整还原指南 在计算机视觉领域,将2D图像转换为3D场景一直是一个令人着迷的挑战。想象一下,仅凭几张普通照片就能重建出真实世界的三维结构——这正是对极几何和三角测量技术赋予我们的超能力。不同于传统的3D扫…...

TD3算法实战:用PyTorch从零搭建强化学习模型(附完整代码)

TD3算法实战:用PyTorch从零搭建强化学习模型(附完整代码) 强化学习在机器人控制、自动驾驶等领域展现出巨大潜力,而TD3算法作为DDPG的升级版本,凭借其稳定性和高效性成为处理连续动作空间问题的首选。本文将带你从零开…...

小白也能懂的GME多模态向量使用指南:图文联合搜索,理解更精准

小白也能懂的GME多模态向量使用指南:图文联合搜索,理解更精准 1. 什么是GME多模态向量? 想象一下,你正在整理手机里的照片。有些照片你记得很清楚内容,但就是找不到关键词来描述;有些截图里的文字很重要&…...

Nano-Banana产品拆解引擎:如何建立自己的提示词模板库

Nano-Banana产品拆解引擎:如何建立自己的提示词模板库 你是否已经用Nano-Banana生成过几张不错的爆炸图,但每次都要重新构思提示词,感觉效率还是不够高?你是否发现,为不同品类的产品写提示词时,总有几个关…...

Phi-3 Forest Laboratory多场景落地:制造业设备手册问答与故障树推理

Phi-3 Forest Laboratory多场景落地:制造业设备手册问答与故障树推理 1. 制造业智能化的新助手 在工业4.0时代,制造业正面临设备管理复杂化的挑战。传统设备手册查询效率低下,故障诊断依赖经验丰富的工程师,这些问题都制约着生产…...

HIPAA/GDPR双合规代码扫描,VSCode 2026医疗扩展包已强制启用PII字段实时脱敏——你更新了吗?

第一章:VSCode 2026医疗代码校验的合规演进与架构变革随着《医疗器械软件注册审查指导原则(2025修订版)》及IEC 62304:2024正式生效,VSCode 2026版本深度集成了医疗领域专属代码校验引擎,不再依赖第三方插件即可原生支…...

从零到一:基于PyTorch的KV Cache工程化实现与性能调优指南

1. KV Cache技术背景与核心价值 当你使用ChatGPT这样的AI聊天机器人时,是否好奇过它为什么能如此流畅地生成大段文字?这背后有个关键技术叫做KV Cache(键值缓存)。想象你在写一篇文章,每次写新句子时,如果都…...

Clawdbot代理网关实战:用Qwen3:32B快速构建企业级AI助手,保姆级教程

Clawdbot代理网关实战:用Qwen3:32B快速构建企业级AI助手,保姆级教程 1. 为什么选择Clawdbot构建AI代理网关 1.1 企业级AI助手的核心挑战 在将大模型技术落地到企业实际业务时,我们通常会遇到三个关键问题: 管理复杂度&#xf…...

Axure高保真数据中台原型实战:从零搭建企业级数据治理系统(附源文件下载)

Axure高保真数据中台原型实战:从零搭建企业级数据治理系统 在数字化转型浪潮中,数据中台已成为企业构建数据驱动能力的核心基础设施。但对于大多数产品团队而言,如何将抽象的数据治理理念转化为可落地的可视化方案,往往成为项目推…...

CiteSpace进阶技巧:利用CNKI数据优化文献分析结果的5个实用方法

CiteSpace进阶技巧:利用CNKI数据优化文献分析结果的5个实用方法 当你已经掌握了CiteSpace的基础操作,却依然对分析结果的质量感到不满意时,这篇文章将为你揭示那些鲜为人知的高级技巧。作为一款强大的文献可视化分析工具,CiteSpac…...

Face3D.ai Pro高效工作流:Face3D.ai Pro+Blender Geometry Nodes自动绑定骨骼

Face3D.ai Pro高效工作流:Face3D.ai ProBlender Geometry Nodes自动绑定骨骼 1. 引言:当AI重建遇上自动化绑定 在3D角色制作流程中,最耗时的环节往往不是建模本身,而是后续的骨骼绑定和权重调整。传统的手动绑定流程需要美术师花…...

低代码开发已死?VSCode 2026插件重构生产力边界,92%传统前端任务被自动编译替代

第一章:低代码开发已死?VSCode 2026插件重构生产力边界,92%传统前端任务被自动编译替代低代码平台曾许诺“拖拽即应用”,却在复杂状态管理、跨端一致性与性能调优中频频失守。2026年,VSCode 官方发布全新内核级插件 vs…...

Z-Image-Turbo-rinaiqiao-huiyewunv 解析计算机组成原理:模拟CPU指令执行与性能分析

Z-Image-Turbo-rinaiqiao-huiyewunv 解析计算机组成原理:模拟CPU指令执行与性能分析 最近在琢磨怎么把计算机组成原理讲得更明白些。这玩意儿吧,概念抽象,寄存器、ALU、流水线,光看课本上的方块图,总觉得隔着一层。正…...

零基础5分钟上手:YOLO X Layout文档理解模型保姆级使用指南

零基础5分钟上手:YOLO X Layout文档理解模型保姆级使用指南 1. 为什么你需要这个工具? 每天面对堆积如山的PDF、扫描件和报表,你是否还在手动复制粘贴内容?YOLO X Layout文档理解模型就是为解决这个问题而生。它能自动识别文档中…...

文墨共鸣模型与操作系统知识结合:智能系统故障排查助手

文墨共鸣模型与操作系统知识结合:智能系统故障排查助手 最近和几个做运维的朋友聊天,他们都在吐槽同一个问题:系统半夜出故障,面对海量的日志和监控数据,经常像大海捞针一样,半天找不到头绪。有时候一个看…...

个人投资者利器:AI股票分析师镜像,模拟专业机构生成风险评估

个人投资者利器:AI股票分析师镜像,模拟专业机构生成风险评估 1. 引言 作为一名普通投资者,你是否经常感到困惑?面对市场上数千只股票,每天海量的新闻、财报、数据,到底该怎么分析?专业机构的分…...

Fmask4.0源码解析:从数据加载到云掩模生成的技术实现

1. Fmask4.0技术背景与核心价值 Fmask作为遥感图像云检测领域的标杆算法,其4.0版本在工程实现上展现了三大技术突破。不同于传统阈值分割方法,Fmask4.0通过多维度特征融合实现了对云层的立体化识别:首先利用TOA反射率区分云层与地表&#xff…...

使用ViT模型实现工业质检自动化

使用ViT模型实现工业质检自动化 在传统工业质检中,人工检测效率低、容易疲劳,而且标准难以统一。现在,基于ViT(Vision Transformer)的智能质检方案正在改变这一现状,让缺陷检测变得又快又准。 1. ViT模型如…...

nlp_structbert_sentence-similarity_chinese-large 多轮对话上下文一致性检测效果

nlp_structbert_sentence-similarity_chinese-large:让AI看懂对话的“上下文” 你有没有遇到过这种情况?跟一个智能客服聊天,你问“我的订单发货了吗?”,它却回答“我们公司成立于2010年”。或者跟朋友闲聊&#xff0…...

DeOldify图像上色服务在低光照与高噪声老照片上的修复表现

DeOldify图像上色服务在低光照与高噪声老照片上的修复表现 翻箱倒柜找出家里的老照片,看着那些泛黄、模糊、布满斑点的影像,是不是总想让它恢复往日的清晰与色彩?这几乎是每个家庭都会有的念想。传统的修复方法要么费时费力,要么…...

PasteMD剪贴板美化工具:5分钟本地部署,一键整理杂乱文本

PasteMD剪贴板美化工具:5分钟本地部署,一键整理杂乱文本 你有没有过这样的体验?开会时手忙脚乱记下的笔记,事后看就像一堆乱码;从网页复制过来的内容,格式全乱套了;写文档时,想把一…...

FanControl开源风扇控制工具:从噪音困扰到智能散热的全面解决方案

FanControl开源风扇控制工具:从噪音困扰到智能散热的全面解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_…...

Simulink频域分析实战:5步搞定控制系统性能评估(附完整MATLAB代码)

Simulink频域分析实战:5步搞定控制系统性能评估(附完整MATLAB代码) 控制系统工程师经常面临一个关键挑战:如何快速验证设计方案的动态性能?频域分析作为经典方法,能直观揭示系统稳定性与响应特性。本文将用…...