Python 爬取天天基金各基金日期、净值、日增长率数据
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 爬取天天基金各基金日期、净值、日增长率数据相关推荐
- Python爬取《权力的游戏第八季》演员数据并分析
Python爬取<权力的游戏第八季>演员数据并分析 数据爬取 一.浏览待爬取网页 二.爬取百度百科中<权力的游戏第八季度>演员表获得每个演员的链接并保存入文件 三.爬取演员详细 ...
- python爬取天天基金_用Python抓取天天基金网基金历史净值数据
请关注微信公众号:金融数学 FinancialMathematics玩基金的朋友应该都深有体会,2018是相当惨淡的一年,尤其下半年,能够保本就不错了.2019迎来了开门红,从2月11日到14日,连续 ...
- python爬取天天基金历史净值_用Python抓取天天基金网基金历史净值数据
请关注微信公众号:金融数学 FinancialMathematics 玩基金的朋友应该都深有体会,2018是相当惨淡的一年,尤其下半年,能够保本就不错了.2019迎来了开门红,从2月11日到14日,连 ...
- python爬取天天基金网全部基金的历史全部净值
** 天天基金网历史净值爬取 ** ** 1.认识天天基金网的数据接口 1,这是所有基金代码.基金名称简称的集合http://fund.eastmoney.com/js/fundcode_search ...
- python爬取天天基金_scrapy学习-爬取天天基金网基金列表
描述 爬取http://fundact.eastmoney.com/banner/pg.html#ln网站的数据, 要求:爬取所有基金(有27页)的基金代码.基金名称.单位净值.日期.日增长率.近1周 ...
- 财富自由之python爬取天天基金排行数据,保存xls文件,慢慢分析
1.前言 闲来无聊,最近迷恋上玩基金,真的是又菜瘾有大,刚好有朋友是做数据分析相关的,他想用excel分析基金历史数据,于是乎,让我去爬取天天基金上的排行数据. 2.xls文件结果展示 爬取了全部.股 ...
- Python爬取近10万条程序员招聘数据,告诉你哪类人才和技能最受热捧!
来源:凹凸数据 本文约5800字,建议阅读15分钟 本文带你了解当下企业究竟需要招聘什么样的人才?需要什么样的技能? 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对于& ...
- 利用 Python 爬取了近 3000 条单身女生的数据,究竟她们理想的择偶标准是什么?
灵感来源与学习:利用 Python 爬取了 13966 条运维招聘信息,我得出了哪些结论? 本文原创作者:壹加柒 本文来源链接:https://blog.csdn.net/yu1300000363/a ...
- python爬取《龙岭迷窟》的数据,看看质量剧情还原度到底怎么样
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:简单 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...
最新文章
- 大数据如何有序地“变废为宝”
- IPFS:Filecoin和复制证明
- 一个很好的分页存储过程
- Linux驱动(3)--单片机驱动与Linux驱动的区别
- tomcat启动很慢的解决方式
- N---Exponentiation
- 【洛谷 P3979】遥远的国度【树链剖分、换根】
- Apollo进阶课程 ⑤ | Apollo硬件开发平台介绍
- 流体力学有限元法(一)
- Spring框架学习之路,完整版 持续更新,有代码仓库对比
- 2022年政府工作报告词频分析
- 不同时区时间换算_时区换算
- php codesniffer,PHP 系列:代码规范之 Code Sniffer
- 史上最全的数学建模竞赛介绍,大家不要错过哦!!!
- 我竟然被淘口令骗了500大洋...
- Android模拟器无法上网问题ZZ
- neovim初始化以及插件安装
- 英雄联盟主播有哪些精彩操作值得看?
- QQ好友辅助验证不要信
- 2020年焊工(技师)考试资料及焊工(技师)考试申请表