爬虫基础之爬取某基金网站+数据分析
声明: 本案例仅供学习参考使用任何不法的活动均与本作者无关网站:天天基金网(1234567.com.cn) --首批独立基金销售机构-- 东方财富网旗下基金平台!本案例所需要的模块:1.requests 2.re(内置) 3.pandas 4.pyecharts其他均需要 pip install 模块名爬取步骤:一.请求数据 模拟浏览器向服务器发送请求F12 打开开发者模式 点击网络 搜索我们需要的数据 找到正确的接口老样子 使用工具能够使我们节约时间 方便快捷但前提能够自己写就没问题新建本地py文件复制过去 运行之后就可以看到与浏览器预览中一样的数据接着我们需要对请求到的数据进行处理这里我们使用正则是最好的匹配所需的内容 即()里的text re.findall(rdatas:[(.*?)],response.text)二.提取数据 提取所需要的内容然后我们观察放回的数据 把每条数据都提取出来此时我们想该使用什么 去提取我们的数据呢 split字符串分割 or 正则都不使用 此时选择eval函数去除引号 是最佳的选择处理完之后就是一个个的元组 之后我们可以遍历元组保存数据接着就是多页数据的采集 通过观察每一页的URL可知 pi参数控制着我们的页码嵌套个for循坏 实现 翻页的操作三.保存数据 保存数据到本地_**因为这样保存的数据连个标头都没有 因此我们对照网站将表头写入根据我们所拿取的数据对照 麻烦的话直接复制我的代码**_# 保存的格式为utf-8-sig 单是utf-8的话会有乱码 看不懂 思密达 with open(基金.csv, a, encodingutf-8-sig, newline ) as f: f.write( 基金代码,基金简称,English,日期,基金净值,基金累计净值,日增长率,基金近1周,基金近1月,基金近3月,基金近6月,基金近1年,基金近2年,基金近3年,今年来,成立来,False,False,False,False,手续费,False,False,False,False,False)后面发现需要进一步的处理csv文件里的数据 我就随便给个表头写入 后续通过pandas 提取所需要的列形成新的表格以下是本案例的源代码 供大家交流使用import requests import re import csv with open(基金.csv, a, encodingutf-8-sig, newline ) as f: f.write( 基金代码,基金简称,English,日期,基金净值,基金累计净值,日增长率,基金近1周,基金近1月,基金近3月,基金近6月,基金近1年,基金近2年,基金近3年,今年来,成立来,False,False,False,False,手续费,False,False,False,False,False) headers { Accept: */*, Accept-Language: zh-CN,zh;q0.9,en;q0.8,en-GB;q0.7,en-US;q0.6, Cache-Control: no-cache, Connection: keep-alive, Pragma: no-cache, Referer: https://fund.eastmoney.com/data/fundranking.html, Sec-Fetch-Dest: script, Sec-Fetch-Mode: no-cors, Sec-Fetch-Site: same-origin, User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0, sec-ch-ua: Microsoft Edge;v131, Chromium;v131, Not_A Brand;v24, sec-ch-ua-mobile: ?0, sec-ch-ua-platform: Windows } cookies { ASP.NET_SessionId: 2n3frbs0qlvk51gumxde43jz, st_si: 03571815072389, st_pvi: 42679690302429, st_sp: 2025-01-05%2020%3A21%3A57, st_inirUrl: https%3A%2F%2Ffund.eastmoney.com%2Fdata%2F, st_sn: 1, st_psi: 20250105202156911-112200312936-7115758265, st_asi: delete } url https://fund.eastmoney.com/data/rankhandler.aspx for page in range(1,20): params { op: ph, dt: kf, ft: all, rs: , gs: 0, sc: 1nzf, st: desc, sd: 2024-01-05, ed: 2025-01-05, qdii: , tabSubtype: ,,,,,, pi: page, pn: 50, dx: 1, v: 0.7427594655500473 } response requests.get(url, headersheaders, cookiescookies, paramsparams) text re.findall(rdatas:[(.*?)], response.text)[0] tuple_data eval(text) for tup in tuple_data: with open(基金.csv, a, encodingutf-8-sig, newline ) as f: f.write(tup) f.write( )数据清洗模块准备步骤:下载pandas模块 pip install pandas此时可以新建一个py文件 方便我们清洗数据# 第一步导包 import pandas as pd # 读取文件 df pd.read_csv(基金.csv) # 获取该文件中所有的列名 print(df.columns)将我们所需要的复制下来 形成一个新的文件import pandas as pd df pd.read_csv(基金.csv) # 语法 df[[基金代码, 基金简称, English, 日期, 基金净值, 基金累计净值, 日增长率, 基金近1周, 基金近1月, 基金近3月, 基金近6月, 基金近1年, 基金近2年, 基金近3年, 今年来, 成立来,手续费]].to_csv(基金_New.csv, indexFalse,encodingutf-8-sig) print(df.columns)现在就看着舒服多了Explain:如下图所示的列名中的数字0保存到csv文件中会消失 但在pycharm中可以正常显示数据可视化模块# 导包 # 需要下载pyecharts import pandas as pd from pyecharts.charts import Line from pyecharts.options import LabelOpts from pyecharts import options as opts df pd.read_csv(基金_New.csv) # 将每一列的数据转换成列表 因为下面的表格数据需要list类型的 name df[基金简称].tolist() value df[基金净值].tolist() value_2 df[基金累计净值].tolist() value_3 df[基金近1周].tolist() # 折线图的生成 line ( Line( ) # 生成x y轴的值 .add_xaxis(name) .add_yaxis(基金净值, value, markpoint_optsopts.MarkPointOpts( # 只显示数据中的最小值和最大值 data[opts.MarkPointItem(type_max, name最大值), opts.MarkPointItem(type_min, name最小值) ] )) .add_yaxis(基金累计净值,value_2,markpoint_optsopts.MarkPointOpts( data[opts.MarkPointItem(type_max, name最大值), opts.MarkPointItem(type_min, name最小值) ] )) .add_yaxis(基金近1周,value_3,markpoint_optsopts.MarkPointOpts( data[opts.MarkPointItem(type_max, name最大值), opts.MarkPointItem(type_min, name最小值) ] )) # 将数值不显示出来 这样美观些 .set_series_opts(label_optsopts.LabelOpts(is_showFalse)) ).render(found.html) # 最后生成html文件

相关新闻

ROS1中的package.xml文件的作用:

ROS1中的package.xml文件的作用:

1、作用:在 ROS 1 中,package.xml 是一个必需的清单文件,用于描述 ROS 功能包的元数据和依赖关系。它的主要作用包括:定义包的基本信息:包含包名称、版本号、描述、维护者、许可证等,确保包可以被正确识别和…

2026/7/4 22:53:30 阅读更多 →
禁止使用存储过程

禁止使用存储过程

优质博文:IT-BLOG-CN 灵感来源 什么是存储过程 存储过程Stored Procedure是指为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户可通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行。 …

2026/7/4 22:53:17 阅读更多 →
私有化部署DeepSeek并SpringBoot集成使用(附UI界面使用教程-支持语音、图片)

私有化部署DeepSeek并SpringBoot集成使用(附UI界面使用教程-支持语音、图片)

私有化部署DeepSeek并SpringBoot集成使用(附UI界面使用教程-支持语音、图片) windows部署ollama Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计 下载ollama 下载地址(…

2026/7/3 1:54:42 阅读更多 →

最新新闻

ChatGPT插件API密钥安全管理实战:从架构设计到自动化轮换

ChatGPT插件API密钥安全管理实战:从架构设计到自动化轮换

1. 项目概述:为什么ChatGPT插件密钥安全是生死线最近在折腾各种AI工具和插件,发现一个挺普遍但又被很多人忽视的问题:ChatGPT插件的API密钥管理。无论是自己开发插件,还是使用别人的,密钥泄露的风险都像悬在头顶的达摩…

2026/7/4 22:52:53 阅读更多 →
基于YOLOv8-seg的高精度道路缺陷检测系统开发

基于YOLOv8-seg的高精度道路缺陷检测系统开发

1. 项目背景与核心价值道路缺陷检测是智慧交通和市政养护领域的关键技术痛点。传统人工巡检方式存在效率低、漏检率高、主观性强等问题,尤其在夜间或恶劣天气条件下表现更差。我们团队基于YOLOv8-seg框架,融合EfficientRepBiPAN、AFPN-P345等50余项创新改…

2026/7/4 22:50:52 阅读更多 →
AI技术决策指南:从信息过载到可执行落地

AI技术决策指南:从信息过载到可执行落地

1. 项目概述:一份AI领域 Newsletter 的真实价值拆解“This AI newsletter is all you need #60”——看到这个标题,你第一反应可能是:又一份泛泛而谈的AI资讯合集?点开就看三行摘要、五个链接、一个ChatGPT新插件预告,…

2026/7/4 22:46:48 阅读更多 →
TC78H660FTG与PIC18F86J10的直流电机驱动优化方案

TC78H660FTG与PIC18F86J10的直流电机驱动优化方案

1. 项目背景与核心器件选型在工业自动化和消费电子领域,直流电机驱动系统的效率优化一直是工程师面临的关键挑战。TC78H660FTG作为东芝新一代H桥驱动器,与Microchip的PIC18F86J10微控制器组合,为解决这一问题提供了高性价比方案。TC78H660FTG…

2026/7/4 22:46:48 阅读更多 →
AntiDupl终极指南:三步快速清理重复照片,释放磁盘空间

AntiDupl终极指南:三步快速清理重复照片,释放磁盘空间

AntiDupl终极指南:三步快速清理重复照片,释放磁盘空间 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl AntiDupl是一款专业的开源图片去重工具&a…

2026/7/4 22:42:44 阅读更多 →
基于STM32和MAX9744的高效D类音频放大器设计

基于STM32和MAX9744的高效D类音频放大器设计

1. 项目背景与核心器件选型在音频系统设计中,功率放大环节直接决定了最终的声音表现。传统AB类放大器虽然音质优秀,但效率普遍低于50%,导致发热严重、能耗高。而D类放大器采用PWM调制技术,理论效率可达90%以上,特别适合…

2026/7/4 22:40:42 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻