Python爬虫获取基金列表

 更新时间:2022年5月5日 13:05  点击:351 作者:​ 斜月   ​

1 前言

python爬虫用来收集数据是最直接和常用的方法,可以使用python爬虫程序获得大量的数据,从而变得非常的简单和快速;绝大多数网站使用了模板开发,使用的模板可以快速生成大量相同布局不同内容的页面,这时只需要为一个页面开发爬虫程序,因为爬虫程序也可以对同一模板生成的不同内容进行爬取内容

2 哪里去获取数据呢

这里给大家准备好了,打开这个连接,就能找看到对应的基金信息:

http://fund.eastmoney.com/jzzzl.html

有了基金连接,我们要做的就是怎么把它抓取下来,123 开始,我恰巧发现了后台访问的接口,是不是很神奇,该是上图的时候了,大家可以看到如下图: 

# 这是原始的连接
http://fund.eastmoney.com/Data/Fund_JJJZ_Data.aspx?lx=1&sort=zdf,desc&page=2,200&onlySale=0
# 经过我使用postman 删减掉一些参数发现精简的连接如下,我不能不吐槽一下,这个时候了还有参数传递使用中文首字母拼写的,
# lx分明就是类型的简写。sort 是对某些字段排序可以忽略。分页的话2,200就是第二页,每页200条,onlySale就是可以卖出的条件。
http://fund.eastmoney.com/Data/Fund_JJJZ_Data.aspx?lx=1&sort=zdf,desc&page=2,100&onlySale=0

3 怎么抓取数据呢

这里我们使用python,需要安装的类库有 requests/demjson/prettytable/json,有没有特别简单呢?

# 安装命令如下
# 发起请求
pip install requests
# 将不是那么严格的json 格式转换为json
pip install demjson
# 格式化打印数据
pip install prettytable
# 将json 格式化的文本转换为json 
pip install json

这里我可以上代码了,简单的逻辑就是先抓取api接口返回的信息,然后解析报文,将返回结果转换成json 格式后只选择需要获取的内容,最后将获取的结果进行输出即可。

import requests
import json
import demjson
from prettytable import PrettyTable
# 数据表格的列表表头字段
title_list = ["code", "name", "value"]
# 查询基金列表信息
def query_fund_list(page= 1):
    req_url = "http://fund.eastmoney.com/Data/Fund_JJJZ_Data.aspx?lx=1&sort=zdf,desc&page={},20&onlySale=0".format(page)
    response = requests.get(req_url)
    # 输出响应头
    # print(response.headers)
    # 获取请求结果并替换,否则结果不能进行格式化json
    resp_body = response.text.replace("var db=", "")
    # 本来首选是这个json, 因为json 不支持 {a :"1"} 这样的转换,因此使用了 demojson
    # json_data = json.loads(resp_body)
    # 转换对象为 json 对象,使不规则的json格式化为json对象
    resp_body = demjson.decode(resp_body)
    # 获取结果数组
    fund_list = resp_body["datas"]
    body_list = []
    for node in fund_list:
        tmp = []
        tmp.append(node[0])
        tmp.append(node[1])
        tmp.append(node[3])
        body_list.append(tmp)
    # 创建一个对象 PrettyTable 用于打印输出结果
    bt = PrettyTable()
    # 将表头信息信息放入bt 中
    bt.field_names = title_list
    # 将表格内容放置在 bt 中
    bt.add_rows(body_list)
    # 打印结果
    print(bt)
if __name__ == "__main__":
    # 这里只打印了第一页,循环打印结果就不写了,大家都会的
    query_fund_list(1)

最终输出的结果如图所示 :

最终我们达到的结果就是这样的结果,有了这些结果,我们可以进行结构化存储,放进数据库中方面查询和使用。

基金代码基金名称最新净值
005585银河文体娱乐混合1.6363
001907国投瑞银境煊灵活配置混合A3.3055
001908国投瑞银境煊灵活配置混合C3.1667
164818工银中证传媒指数(LOF)A0.9231
.........

这是一个简单的开始,我们获取到了基金的列表。后续我们会抓取基金的基本信息和变动信息,建立模型去展现。

到此这篇关于Python爬虫获取基金列表的文章就介绍到这了,更多相关Python获取列表内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

原文出处:https://juejin.cn/post/7030831955293765640

[!--infotagslink--]

相关文章

  • python opencv 画外接矩形框的完整代码

    这篇文章主要介绍了python-opencv-画外接矩形框的实例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-09-04
  • PHP成员变量获取对比(类成员变量)

    下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • 最炫Python烟花代码全解析

    2022虎年新年即将来临,小编为大家带来了一个利用Python编写的虎年烟花特效,堪称全网最绚烂,文中的示例代码简洁易懂,感兴趣的同学可以动手试一试...2022-02-14
  • python中numpy.empty()函数实例讲解

    在本篇文章里小编给大家分享的是一篇关于python中numpy.empty()函数实例讲解内容,对此有兴趣的朋友们可以学习下。...2021-02-06
  • python-for x in range的用法(注意要点、细节)

    这篇文章主要介绍了python-for x in range的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-10
  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • python实现b站直播自动发送弹幕功能

    这篇文章主要介绍了python如何实现b站直播自动发送弹幕,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-02-20
  • php获取一个文件夹的mtime的程序

    php获取一个文件夹的mtime的程序了,这个就是时间问题了,对于这个问题我们来看小编整理的几个例子,具体的操作例子如下所示。 php很容易获取到一个文件夹的mtime,可以...2016-11-25
  • python Matplotlib基础--如何添加文本和标注

    这篇文章主要介绍了python Matplotlib基础--如何添加文本和标注,帮助大家更好的利用Matplotlib绘制图表,感兴趣的朋友可以了解下...2021-01-26
  • 如何获取网站icon有哪些可行的方法

    获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • python 计算方位角实例(根据两点的坐标计算)

    今天小编就为大家分享一篇python 计算方位角实例(根据两点的坐标计算),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
  • jquery如何获取元素的滚动条高度等实现代码

    主要功能:获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 :$(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 :$(document).width();...2015-10-21
  • python实现双色球随机选号

    这篇文章主要为大家详细介绍了python实现双色球随机选号,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-05-02
  • python中使用np.delete()的实例方法

    在本篇文章里小编给大家整理的是一篇关于python中使用np.delete()的实例方法,对此有兴趣的朋友们可以学习参考下。...2021-02-01
  • 使用Python的pencolor函数实现渐变色功能

    这篇文章主要介绍了使用Python的pencolor函数实现渐变色功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-09
  • Python getsizeof()和getsize()区分详解

    这篇文章主要介绍了Python getsizeof()和getsize()区分详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-20