Python抓取天天基金数据

Python 3.9
编辑器:VSCode
数据库:Sqlite

#-*- coding : utf-8 -*-
#@Author : Jack Zhang
#@Time : 2020/12/06 15:03:07
#@File : fund_spider.py
#@Software : VSCode
import re
import urllib.request
import sqlite3
import jsondef main():fundCode = input("请输入基金代码:")baseURL = getBaseUrl(fundCode)dataList = getPage(baseURL)dbpath = 'funds.db'Sqlite(dataList,dbpath,fundCode)
#获取BaseURL
def getBaseUrl(fundCode):base = 'http://api.fund.eastmoney.com/f10/lsjz?callback=jQuery18308841118081025123_1607223302140&pageSize=20&startDate=&endDate=&_=1607223302171&fundCode='base = base + fundCodebase = base + "&pageIndex="return base
#获取基金数据
def getHtml(url):header = {"User-Agent": ","Referer": "","Cookie":""}data = ""request = urllib.request.Request(url,headers=header)response = urllib.request.urlopen(request)data = response.read().decode("utf-8")return data
#解析数据
def Json(html):html = html.replace('jQuery18308841118081025123_1607223302140','')html = html.replace('(','')html = html.replace(')','')html = json.loads(html)return html
#判断数据是否为空
def isEmp(data,datal):if data=='':data = "0"datal.append(data)else:datal.append(data)return datal
#抓取所有页面
def getPage(baseurl):dataList = []for i in range(1,200):url = baseurl + str(i)data = getHtml(url)data = Json(data)if data['Data'] == '':print('爬取完毕')breakelse:data = data['Data']['LSJZList']for data in data:datal = []isEmp(data['FSRQ'],datal)isEmp(data['DWJZ'],datal)isEmp(data['LJJZ'],datal)isEmp(data['JZZZL'],datal)dataList.append(datal)#print(dataList)return(dataList)
#存储至Sqlite数据库
def Sqlite(datalist,dbpath,fundCode):init_db(dbpath,fundCode)conn = sqlite3.connect(dbpath)cursor = conn.cursor()for data in datalist:sql = '''insert into '''+'F'+str(fundCode)+'''(time,fund_value,fund_accumulate,rate) values (%s)'''%','.join(data)cursor.execute(sql)conn.commit()conn.close()
#建立数据表
def init_db(dbpath,fundCode):sql = '''create table '''+'F'+str(fundCode)+''' (id integer primary key autoincrement,time text,fund_value numeric,fund_accumulate numeric,rate numeric)'''conn = sqlite3.connect(dbpath)cursor = conn.cursor()cursor.execute(sql)conn.commit()conn.close()if __name__ == "__main__":main()print("完毕")

新手学习,请各位大佬请多多支持。

Python 爬取天天基金各基金日期、净值、日增长率数据相关推荐

  1. Python爬取《权力的游戏第八季》演员数据并分析

    Python爬取<权力的游戏第八季>演员数据并分析 数据爬取 一.浏览待爬取网页 二.爬取百度百科中<权力的游戏第八季度>演员表获得每个演员的链接并保存入文件 三.爬取演员详细 ...

  2. python爬取天天基金_用Python抓取天天基金网基金历史净值数据

    请关注微信公众号:金融数学 FinancialMathematics玩基金的朋友应该都深有体会,2018是相当惨淡的一年,尤其下半年,能够保本就不错了.2019迎来了开门红,从2月11日到14日,连续 ...

  3. python爬取天天基金历史净值_用Python抓取天天基金网基金历史净值数据

    请关注微信公众号:金融数学 FinancialMathematics 玩基金的朋友应该都深有体会,2018是相当惨淡的一年,尤其下半年,能够保本就不错了.2019迎来了开门红,从2月11日到14日,连 ...

  4. python爬取天天基金网全部基金的历史全部净值

    ** 天天基金网历史净值爬取 ** ** 1.认识天天基金网的数据接口 1,这是所有基金代码.基金名称简称的集合http://fund.eastmoney.com/js/fundcode_search ...

  5. python爬取天天基金_scrapy学习-爬取天天基金网基金列表

    描述 爬取http://fundact.eastmoney.com/banner/pg.html#ln网站的数据, 要求:爬取所有基金(有27页)的基金代码.基金名称.单位净值.日期.日增长率.近1周 ...

  6. 财富自由之python爬取天天基金排行数据,保存xls文件,慢慢分析

    1.前言 闲来无聊,最近迷恋上玩基金,真的是又菜瘾有大,刚好有朋友是做数据分析相关的,他想用excel分析基金历史数据,于是乎,让我去爬取天天基金上的排行数据. 2.xls文件结果展示 爬取了全部.股 ...

  7. Python爬取近10万条程序员招聘数据,告诉你哪类人才和技能最受热捧!

    来源:凹凸数据 本文约5800字,建议阅读15分钟 本文带你了解当下企业究竟需要招聘什么样的人才?需要什么样的技能? 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对于& ...

  8. 利用 Python 爬取了近 3000 条单身女生的数据,究竟她们理想的择偶标准是什么?

    灵感来源与学习:利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论? 本文原创作者:壹加柒 本文来源链接:https://blog.csdn.net/yu1300000363/a ...

  9. python爬取《龙岭迷窟》的数据,看看质量剧情还原度到底怎么样

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:简单 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...

最新文章

  1. 大数据如何有序地“变废为宝”
  2. IPFS:Filecoin和复制证明
  3. 一个很好的分页存储过程
  4. Linux驱动(3)--单片机驱动与Linux驱动的区别
  5. tomcat启动很慢的解决方式
  6. N---Exponentiation
  7. 【洛谷 P3979】遥远的国度【树链剖分、换根】
  8. Apollo进阶课程 ⑤ | Apollo硬件开发平台介绍
  9. 流体力学有限元法(一)
  10. Spring框架学习之路,完整版 持续更新,有代码仓库对比
  11. 2022年政府工作报告词频分析
  12. 不同时区时间换算_时区换算
  13. php codesniffer,PHP 系列:代码规范之 Code Sniffer
  14. 史上最全的数学建模竞赛介绍,大家不要错过哦!!!
  15. 我竟然被淘口令骗了500大洋...
  16. Android模拟器无法上网问题ZZ
  17. neovim初始化以及插件安装
  18. 英雄联盟主播有哪些精彩操作值得看?
  19. QQ好友辅助验证不要信
  20. 2020年焊工(技师)考试资料及焊工(技师)考试申请表

热门文章

  1. sde和oracle分布式安装,ArcSDE 9.3与Oracle 11g分布安装步骤
  2. ArcSDE的版本的理解
  3. MySql存储过程与调用
  4. 网易游戏TTT面试总结
  5. RK3568 LCD使用
  6. 婴舒宝微商系统搭建(PHP语言)
  7. ssh 无密登录(两行命令即可)
  8. 燃气灶具连接金属软管摆动弯曲试验机的原理
  9. C++图像处理 -- 图像颜色混合(上)
  10. 视觉架构大一统!港中文提出:Container,对CNN、Transformer和MLP-Mixer进行了大一统...