首页 > 其他分享 >爬虫基础之爬取某基金网站+数据分析

爬虫基础之爬取某基金网站+数据分析

时间:2025-01-06 21:29:36浏览次数:8  
标签:数据分析 False 网站 爬虫 df import csv 基金 opts

声明: 本案例仅供学习参考使用,任何不法的活动均与本作者无关

网站:天天基金网(1234567.com.cn) --首批独立基金销售机构-- 东方财富网旗下基金平台!


本案例所需要的模块:

1.requests          2.re(内置)           3.pandas           4.pyecharts

其他均需要 pip install 模块名

爬取步骤:


一.请求数据  模拟浏览器向服务器发送请求
 

 F12 打开开发者模式 点击网络  搜索我们需要的数据 找到正确的接口

老样子 使用工具能够使我们节约时间 方便快捷 但前提能够自己写就没问题


新建本地py文件复制过去 运行之后就可以看到与浏览器预览中一样的数据

接着我们需要对请求到的数据进行处理
这里我们使用正则是最好的
匹配所需的内容 即()里的

text = re.findall(r'datas:\[(.*?)\]',response.text)

二.提取数据 提取所需要的内容 

 然后我们观察放回的数据 把每条数据都提取出来

此时我们想该使用什么 去提取我们的数据呢  split字符串分割 or 正则
都不使用 此时选择eval函数去除引号 是最佳的选择

 处理完之后就是一个个的元组 之后我们可以遍历元组保存数据

接着就是多页数据的采集 通过观察每一页的URL可知 pi参数控制着我们的页码
嵌套个for循坏 实现 翻页的操作

三.保存数据  保存数据到本地

        因为这样保存的数据连个标头都没有 因此我们对照网站将表头写入

        根据我们所拿取的数据对照  麻烦的话直接复制我的代码


# 保存的格式为utf-8-sig  单是utf-8的话会有乱码 看不懂 思密达

with open('基金.csv', 'a', encoding='utf-8-sig', newline='\n') 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', encoding='utf-8-sig', newline='\n') 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;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.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\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"",
    "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, headers=headers, cookies=cookies, params=params)
    text = re.findall(r'datas:\[(.*?)\]', response.text)[0]
    tuple_data = eval(text)
    for tup in tuple_data:
        with open('基金.csv', 'a', encoding='utf-8-sig', newline='\n') as f:
            f.write(tup)
            f.write('\n')

数据清洗模块 


准备步骤:
        下载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', index=False,encoding='utf-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_opts=opts.MarkPointOpts(
        # 只显示数据中的最小值和最大值
        data=[opts.MarkPointItem(type_="max", name="最大值"),
              opts.MarkPointItem(type_="min", name="最小值")
              ]
    ))
    .add_yaxis('基金累计净值',value_2,markpoint_opts=opts.MarkPointOpts(

        data=[opts.MarkPointItem(type_="max", name="最大值"),
              opts.MarkPointItem(type_="min", name="最小值")
              ]
    ))
    .add_yaxis('基金近1周',value_3,markpoint_opts=opts.MarkPointOpts(

        data=[opts.MarkPointItem(type_="max", name="最大值"),
              opts.MarkPointItem(type_="min", name="最小值")
              ]
    ))
    # 将数值不显示出来 这样美观些
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))

).render('found.html')
# 最后生成html文件

 

标签:数据分析,False,网站,爬虫,df,import,csv,基金,opts
From: https://blog.csdn.net/2302_80243887/article/details/144950471

相关文章

  • 2025毕设ssm奢品网站系统程序+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着经济的发展和人们生活水平的提高,奢侈品市场呈现出蓬勃发展的态势。互联网技术的广泛应用使得奢品网站系统应运而生,它成为了奢侈品销售、展示......
  • (2024最新毕设合集)基于Django的电影资讯共享平台-10223|可做计算机毕业设计JAVA、PHP、
    目录摘要Abstract1绪论1.1研究背景1.2研究意义1.3论文结构与章节安排2电影资讯共享平台系统分析2.1可行性分析2.1.1技术可行性分析2.1.2经济可行性分析2.1.3 社会可行性2.1.4法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.......
  • 为什么阿卡德网站会有两个域名
    第一次接触阿卡德网站是在一年前,那个时候想要下载一些学习资料,然后东找西找,最后把目标锁定在了阿卡德网站上了。那个时候,通过百度搜索的时候,显示的阿卡德首页的地址是:akade.linkpc.net,当时对这个域名还是很好奇的,毕竟通常见过的域名都是以www开头,然后后缀才是.net、com......
  • 两年数据分析 已跑路转NLP大模型了
    其实数据分析这个岗位吧,刚开始确实还行,像我们当时就天天跑报表、做数据可视化、分析业务问题,自我感觉还挺高大上的。但是慢慢就琢磨出不对味儿了,感觉自己就是从‘业务工具人’变成‘高级工具人’。而且说白了,数据分析师的工作很多时候就是把数据整理好,讲成业务听得懂的故......
  • node.js毕设潮购购物网站论文+程序
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于购物网站的研究,现有研究主要以综合性购物网站为主,专门针对潮购(潮流购物)这种聚焦潮流商品的购物网站研究较少。在国内外,电子商务发展迅速,购物网站众......
  • 网站优化排名:解锁搜索引擎流量的密钥
    在数字化时代,网站不仅是企业线上身份的象征,更是连接潜在客户的桥梁。然而,在数以亿计的网站中脱颖而出,让目标受众轻松找到你,并非易事。网站优化排名,即通过一系列策略和技术手段提升网站在搜索引擎结果页面(SERP)上的排名,成为了吸引高质量流量、提升品牌知名度和促进业务增长的关......
  • 爬虫学习——27.JS逆向(3)
    RSA介绍RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。有两把对应密钥,公钥和私钥。用公钥加密只能用私钥解开,用私钥加密只能用公钥解密。RSA加密解密网址:https://oktools.net/rsa公开密钥(publickey:公钥)私有密钥(privatekey:私钥)公......
  • 数据分析思维(八):分析方法——RFM分析方法
     数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python,更重要的是数据分析思维。没有数据分析思维和业务知识,就算拿到一堆数据,也不知道如何下手。推荐书本《数据分析思维——分析方法和业务知识》,本文内容就是提取这本书的主体思维,以提高自身的数据分析素养。......
  • 如何将修改后的代码应用到网站上?
    将修改后的代码应用到网站上是一个关键步骤,确保网站能够正常运行并展示最新的内容和功能。以下是详细的步骤和注意事项:备份原始文件:在进行任何修改之前,确保备份原始文件。使用版本控制系统(如Git)来管理文件变更。测试修改后的代码:在本地环境中测试修改后的代码,确保功能......
  • 为什么网站修改代码后恢复了原样?
    网站修改代码后恢复原样可能是由于多种原因造成的。以下是一些常见的原因及其解决方法:缓存问题:浏览器缓存可能导致您看到的是旧的页面内容。解决方法:清除浏览器缓存。使用无痕模式或隐身模式访问网站。在浏览器中按Ctrl+F5强制刷新页面。服务器缓存:服务器端缓......