前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python采集天天基金数据,帮你掌握基金最新动向

Python采集天天基金数据,帮你掌握基金最新动向

作者头像
松鼠爱吃饼干
发布2021-12-22 09:59:21
5460
发布2021-12-22 09:59:21
举报
文章被收录于专栏:Python分享Python分享

本次案例实现流程

一、思路分析

需要什么数据?需要的数据在哪里?

二、代码实现

  1. 发送请求
  2. 获取数据
  3. 解析数据
  4. 多页爬取
  5. 保存数据

知识点

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

开发环境

  • 版 本:python 3.8
  • 编辑器:pycharm 2021.2

本次目标

分析网站

第一步:打开开发者工具,按F12,或者右键点击检查 第二步:刷新网站,点击搜索工具,在搜索框内输入基金代码,点击搜索

第三步:找到数据所在的真实url

开始代码

导入模块

代码语言:javascript
复制
import requests    
import re
import csv

发送请求

代码语言:javascript
复制
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=1&pn=50&dx=1'
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',
}
response = requests.get(url=url, headers=headers)

获取数据

代码语言:javascript
复制
data = response.text

解析数据 筛选数据

代码语言:javascript
复制
 data_str = re.findall('\[(.*?)\]', data)[0]

转变数据类型

代码语言:javascript
复制
tuple_data = eval(data_str)
for td in tuple_data:
    # 把td 变成列表
    td_list = td.split(',')

翻页

分析不同页数url变化规律

代码语言:javascript
复制
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'

保存数据

代码语言:javascript
复制
with open('基金.csv', mode='a', encoding='utf-8', newline='') as f:
    csv_write = csv.writer(f)
    csv_write.writerow(td_list)
print(td)

运行代码,得到数据

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本次案例实现流程
  • 一、思路分析
  • 二、代码实现
  • 知识点
  • 开发环境
  • 本次目标
  • 分析网站
  • 开始代码
    • 导入模块
      • 发送请求
        • 获取数据
          • 解析数据 筛选数据
            • 转变数据类型
              • 翻页
                • 保存数据
                • 运行代码,得到数据
                相关产品与服务
                云开发 CLI 工具
                云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档