type 类型,历史净值用lsjz表示

code 基金代码,六位数字

sdate 开始日期,格式是yyyy-mm-dd

edate 结束日期,格式是yyyy-mm-dd

per 一页显示多少条记录

为了便于分析页面数据,要保证所选择日期范围内的净值在一个页面全部显示,可以把per设成很大的值,比如65535。

返回的页面数据比较简单,只有一个历史净值的表格和总记录数,总页数和当前页数。

var apidata={ content:"

净值日期 单位净值 累计净值 日增长率 申购状态 赎回状态 分红送配

2018-03-02 2.3580 2.3580 0.17% 开放申购 开放赎回

2018-03-01 2.3540 2.3540 0.56% 开放申购 开放赎回

2018-02-28 2.3410 2.3410 -1.35% 开放申购 开放赎回

2018-02-27 2.3730 2.3730 -2.06% 开放申购 开放赎回

2018-02-26 2.4230 2.4230 0.29% 开放申购 开放赎回

2018-02-23 2.4160 2.4160 -0.49% 开放申购 开放赎回

2018-02-22 2.4280 2.4280 2.58% 开放申购 开放赎回

",records:7,pages:1,curpage:1};

html.PNG

用BeautifulSoup库的findAll找到tbody(表格主体)标签,然后在里面找tr(表格中的一行)标签,单元格内容是:

td:nth-of-type(1)(第1个单元格)是净值日期

td:nth-of-type(2)(第2个单元格)是单位净值

td:nth-of-type(3)(第3个单元格)是累计净值

td:nth-of-type(4)(第4个单元格)是日增长率

范例代码如下:

# -*- coding:utf-8 -*-

import requests

from bs4 import BeautifulSoup

from prettytable import *

def get_url(url, params=None, proxies=None):

rsp = requests.get(url, params=params, proxies=proxies)

rsp.raise_for_status()

return rsp.text

def get_fund_data(code, start='', end=''):

record = {'Code': code}

url = 'http://fund.eastmoney.com/f10/F10DataApi.aspx'

params = {'type': 'lsjz', 'code': code, 'page': 1, 'per': 65535, 'sdate': start, 'edate': end}

html = get_url(url, params)

soup = BeautifulSoup(html, 'html.parser')

records = []

tab = soup.findAll('tbody')[0]

for tr in tab.findAll('tr'):

if tr.findAll('td') and len((tr.findAll('td'))) == 7:

record['Date'] = str(tr.select('td:nth-of-type(1)')[0].getText().strip())

record['NetAssetValue'] = str(tr.select('td:nth-of-type(2)')[0].getText().strip())

record['ChangePercent'] = str(tr.select('td:nth-of-type(4)')[0].getText().strip())

records.append(record.copy())

return records

def demo(code, start, end):

table = PrettyTable()

table.field_names = ['Code', 'Date', 'NAV', 'Change']

table.align['Change'] = 'r'

records = get_fund_data(code, start, end)

for record in records:

table.add_row([record['Code'], record['Date'], record['NetAssetValue'], record['ChangePercent']])

return table

if __name__ == "__main__":

print demo('110022', '2018-02-22', '2018-03-02')

输出结果如下:

+--------+------------+--------+--------+

| Code | Date | NAV | Change |

+--------+------------+--------+--------+

| 110022 | 2018-03-02 | 2.3580 | 0.17% |

| 110022 | 2018-03-01 | 2.3540 | 0.56% |

| 110022 | 2018-02-28 | 2.3410 | -1.35% |

| 110022 | 2018-02-27 | 2.3730 | -2.06% |

| 110022 | 2018-02-26 | 2.4230 | 0.29% |

| 110022 | 2018-02-23 | 2.4160 | -0.49% |

| 110022 | 2018-02-22 | 2.4280 | 2.58% |

+--------+------------+--------+--------+

python爬取基金历史净值_Python爬取天天基金网历史净值数据相关推荐

  1. python爬取历史天气_Python 爬取历史天气数据

    Python 爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据 ...

  2. python知乎爬虫收藏夹_Python爬取知乎问题收藏夹 爬虫入门

    简介 知乎的网站是比较好爬的,没有复杂的反爬手段,适合初学爬虫的人作为练习 因为刚刚入门python,所以只是先把知乎上热门问题的一些主要信息保存到数据库中,待以后使用这些信息进行数据分析,爬取的网页 ...

  3. python百度贴吧 发帖时间_python爬取贴吧帖子

    一.介绍 我们常遇到一些很长的贴吧连载帖子想存到本地再看 此文就是运用python爬取指定百度贴吧的帖子并存到本地满足需求 环境:python2.7 目标网页:[长篇连载]剑网3的正史和野史--从头开 ...

  4. python爬取知乎标题_python爬知乎热榜

    爬项目:知乎热榜标题.热度.简介. 第一步浏览网页源代码 确认在哪html 还是js里 标题和热度在html 标签内容在js 需要用到正则表达式: 第二先爬html 里的内容调用模块-再请求一下url ...

  5. python爬取京东评论分析_Python爬取京东商品评论+制作关键字云+情感分析图

    首先我们要了解一下,我们用requests包爬取的都只是写在HTML页面上的数据,但是呢,现在很多网站的数据都是通过js代码生成的,除非你找到它,不然是爬取不到的. 首先我随意打开一个京东的商品的详情 ...

  6. python爬取音乐并保存_Python爬取网易云音乐上评论火爆的歌曲

    前言 网易云音乐这款音乐APP本人比较喜欢,用户量也比较大,而网易云音乐之所以用户众多和它的歌曲评论功能密不可分,很多歌曲的评论非常有意思,其中也不乏很多感人的评论.但是,网易云音乐并没有提供热评排行 ...

  7. python爬取公众号文章_python爬取微信公众号历史文章

    前几天,朋友有一个爬取某些指定微信公众号的历史文章的需求,刚好自己闲的没事,也就试了一试.不算完美解决问题了吧,但是自己也无能为力了,毕竟腾讯那么牛,斗不过斗不过. 一.思路 看了一些别人的文章,综合 ...

  8. python爬取公众号历史文章_python爬微信公众号前10篇历史文章(6)-话说http cookies...

    早期Web开发面临的最大问题之一是如何管理状态.简言之,服务器端没有办法知道两个请求是否来自于同一个浏览器.这是cookies的起源. 什么是cookie? A cookie is a small s ...

  9. python爬取微信公众号_Python爬取微信公众号(中间人代理法)

    1.环境:ubuntu16.04 + redis + mysql + python3.5 + anyproxy + android + pm2 + npm + node 一台爬虫服,python3环境 ...

最新文章

  1. 【图论】Tarjan 缩点
  2. solr mysql 分词_solr学习篇(二) solr 分词器篇
  3. 第一序列任小粟的能力_末世废土文—《第一序列》:“这世间,已经不需要齐天大圣了。”...
  4. sql for xml path用法
  5. 在远程桌面连接中使用命令行参数
  6. js 随机数_JS常用方法和一些封装:随机数生成
  7. phpcms站点域名配置https无法提交如何处理
  8. CCNA培训视频教程下载
  9. 电脑屏幕变色了怎么调回来,电脑屏幕颜色怎么改
  10. BigNumber.js
  11. 层次分析法 - MATLAB代码详解
  12. 【实践】人体红外传感器
  13. Win10 AMD显卡不兼容造成的开机黑屏问题解决
  14. 行业分析-全球与中国3D自动X射线检测(AXI)市场现状及未来发展趋势
  15. Element UI table宽度自适应
  16. GraphQL是什么,入门了解看这一篇就够了!
  17. ndarray数组的操作和运算
  18. 容器化技术【Kubernetes】
  19. [转]词根词缀记单词3-主讲victor老师
  20. VS Code + GCC 搭建 STM32 开发环境

热门文章

  1. spark RDD详解及源码分析
  2. Json 与GeoJson
  3. kubernetes问题排查
  4. Youtube深度学习推荐系统
  5. Spark笔记:RDD基本操作(上)
  6. Hadoop2.7.6在Windows7单机部署
  7. SparkContext、SparkConf和SparkSession的初始化
  8. Django中ORM之或语句查询
  9. angular input和output
  10. 从nginx的编译安装,了解编译安装原理