广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python爬虫获取基金基本信息
  • 311
分享到

Python爬虫获取基金基本信息

2024-04-02 19:04:59 311人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1 前言2 如何抓取基本信息3 xpath 获取数据4 bs4 获取数据5 最终结果展现1 前言 上篇文章python爬虫获取基金列表我们已经讲述了如何从基金网站上获取基金的列表

1 前言

上篇文章python爬虫获取基金列表我们已经讲述了如何从基金网站上获取基金的列表信息。这一骗我们延续上一篇,继续分享如何抓取基金的基本信息做展示。展示的内容包括基金的基本信息,诸如基金公司,基金经理,创建时间以及追踪标、持仓明细等信息。

2 如何抓取基本信息

# 在这里我就直接贴地址了,这个地址的获取是从基金列表跳转,然后点基金概况就可以获取到了。
Http://fundf10.eastmoney.com/jbgk_005585.html

基金的详情页面和基金的基本信息页面:

 现在我们需要做的事情就是怎么把基金的基本概况数据抓取下来,很遗憾,这个工作不像上次那样可以直接通过接口调用的方式获取结果,而是需要我们解析页面html,通过获取元素来解析我们所需要的信息。这时我们就需要使用xpath来获取所需要的元素。

3 xpath 获取数据

解析html 数据,我们通常使用 xpath 来获取页面的数据,在这里我们也首选这个 xpath,那么怎么使用呢?首先需要安装相关的类库。

# 安装 lxml
pip install lxml

使用浏览器打开,然后点击[检查]使用选择基金基本信息,然后如图所示选择[copy XPath],可以获取到数据所在的表格位置

from lxml import etree
# ...
# 将返回的数据结果进行解析,形成 html 文档
html = etree.HTML(resp_body)
result = etree.tostring(html, pretty_print=True)
# 打印获取到的结果
print(result)
# 抓取数据的位置,这个地方的数据是通过浏览器的 xpath 定位来确定的 
table_body = html.xpath('//*[@id="bodydiv"]/div[8]/div[3]/div[2]/div[3]/div/div[1]/table/tbody')
# 打印数据结果
print(table_body)

按照常理来说,这里应该可以获取到基金基本新的结果,但是万万没想到呀,竟然失算了,获取到的结果竟然为空,百思不得其解。我还以为是api使用的不够熟练,不能正确的获取,直到我仔细研究了返回的页面信息,才看到根本没有 tbody 这个元素,可能是浏览器渲染后导致的结果,也就是说通过 xpath 来定位元素位置来获取数据这条路可能不行。事实上也确实是如此,基金基本信息的数据是放在页面的 scripts 标签里面的,所以这个条真的就行不通了。可能通过xpath是配合selenium一起使用做页面自动化测试的,这个有机会再去研究吧。

4 bs4 获取数据

既然直接获取页面元素的方式行不通,那么就只有解析返回页面来获取数据了,java 语言的话可以使用 joup来解析获取数据,但是python又如何来操作呢?这就需要使用 bs4 来解决了。安装方式如下:

# 简称bs4,Python解析html非常好用的第三方类库
pip install beautifulsoup4

其主要使用的解析方法如下图所示,接下来我们使用lxml来解析html数据,如何使用HTML5lib的话,需要先进行安装才能使用 pip install html5lib

解析数据的思路是这样的,我们看到浏览器返回的结果是包含 table>tr>td 这样的结构,我们先获取到基金对应信息的table,然后获取到table中的 td,因为这个表格展示内容是固定的,我们选取对应的数据下标即可获取对应的数据。

# 解析返回的报文
soup = BeautifulSoup(resp_body, 'lxml')
# 获取数据的table标签所有数据
body_list = soup.find_all("table")
# 基金信息对应的是第二个
basic_info = body_list[1]
# 打印结果并循环输出td的内容
print(basic_info)
td_list = basic_info.find_all("td")
for node in td_list:
   print(node.get_text())

这里涉及两个方法find_allget_text,第一个是元素选择器,可以根据标签class进行搜索,第二个是获取元素中的内容。

5 最终结果展现

经常不断的尝试,最终的最简版代码如下所示:

from lxml import etree
import requests
from prettytable import PrettyTable
import datetime
# 使用BeautifulSoup解析网页
from bs4 import BeautifulSoup
# 获取基金基本信息
def query_fund_basic(code):
    # http://fundf10.eastmoney.com/jbgk_005585.html
    response = requests.get("http://fundf10.eastmoney.com/jbgk_{}.html".fORMat(code))
    resp_body = response.text
    soup = BeautifulSoup(resp_body, 'lxml')
    body_list = soup.find_all("table")
    basic_info = body_list[1]
    # print(basic_info)
    tr_list = basic_info.find_all("td")
    # 暂存一下列表
    tmp_list = []
    tmp_list.append(tr_list[2].get_text().replace("(前端)", ""))
    tmp_list.append(tr_list[1].get_text())
    tmp_list.append(tr_list[8].get_text())
    tmp_list.append(tr_list[10].get_text())
    tmp_list.append(tr_list[5].get_text().split("/")[0].strip())
    tmp_list.append(tr_list[5].get_text().split("/")[1].strip().replace("亿份", ""))
    tmp_list.append(tr_list[3].get_text())
    tmp_list.append(tr_list[18].get_text())
    tmp_list.append(tr_list[19].get_text())
    return tmp_list
if __name__ == '__main__':
    print("start analyze !")
    code_list = ["005585", "000362"]
    # 需要关注的基本信息如右所示 基金代码 基金名称 基金公司 基金经理 创建时间 
    # 基金份额 基金类型 业绩基准 跟踪标的
    head_list = ["code", "name", "company", "manager", "create_time", 
    "fund_share", "fund_type", "comp_basic", "idx_target"]
     # 生成表格对象
    tb = PrettyTable() 
    tb.field_names = head_list  # 定义表头
    for node in code_list:
       tb.add_row(query_fund_basic(node))
    # 输出表格
    print(tb)
    reslt = str(tb).replace("+", "|")
    print(reslt)

最终打印的结果如下所示,感觉很期待: 

 接来下我们会利用数据库进行存储基金的基本信息,然后基于此才能抓取基金的变动信息进行分析,距离激动人心的时刻已经很近了。

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

--结束END--

本文标题: Python爬虫获取基金基本信息

本文链接: https://www.lsjlt.com/news/117694.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python爬虫获取基金基本信息
    目录1 前言2 如何抓取基本信息3 xpath 获取数据4 bs4 获取数据5 最终结果展现1 前言 上篇文章Python爬虫获取基金列表我们已经讲述了如何从基金网站上获取基金的列表...
    99+
    2022-11-11
  • Python爬虫获取基金变动信息
    目录1 前言2 抓取变动信息2.1 基金的变动信息获取2.2 基金阶段信息的抓取3 最终结果展现1 前言 前面文章Python爬虫获取基金列表、Python爬虫获取基金基本信息我们已...
    99+
    2022-11-10
  • Python爬虫获取基金净值信息详情
    目录1 前言2 获取基金净值3 数据库结构设计4 如何进行数据存储5 总结1 前言 前面的文章中我们已经获取到了基金的阶段变动信息和ETF信息的获取,那么在本章中,我们将继续前面的内...
    99+
    2022-11-10
  • Python爬虫获取基金列表
    目录1 前言2 哪里去获取数据呢3 怎么抓取数据呢1 前言 python爬虫用来收集数据是最直接和常用的方法,可以使用python爬虫程序获得大量的数据,从而变得非常的简单和快速;绝...
    99+
    2022-11-10
  • python爬虫之基金信息存储
    目录1 前言2 信息存储2.1 基金基本信息存储2.2 基金变动信息获取3 需要改进的地方3.1 基金类型3.2 基金的更新顺序4 总结1 前言 前面已经讲了很多次要进行数据存储,终...
    99+
    2022-11-12
  • python爬虫之场内ETF基金获取
    目录1 前言2 ETF列表和简称3 ETF 信息获取3.1 ETF列表信获取3.2 获取基金的简称4 最终结果展示1 前言 之前已经介绍了基金的变动信息,但是这些基金都是属于场外的,...
    99+
    2022-11-10
  • python网络爬虫基于selenium爬取斗鱼直播信息
    目录一、本文使用的第三方包和工具二、selenium的介绍和浏览器驱动的安装1.selenium的介绍2.浏览器驱动的安装三、代码思路分析1.解析数据的函数2.保存数据的函数3.主函...
    99+
    2022-11-13
  • python爬虫爬取bilibili网页基本内容
    用爬虫爬取bilibili网站排行榜游戏类的所有名称及链接: 导入requests、BeautifulSoup import requests from bs4 import Be...
    99+
    2022-11-12
  • python 简单的股票基金爬虫
    目录项目地址所用到的技术开始编写爬虫项目地址 https://github.com/aliyoge/fund_crawler_py 所用到的技术 IP代理池 多线程 爬虫 sql ...
    99+
    2022-06-02
    python 股票爬虫 python 基金爬虫
  • Python爬虫基本原理
    看崔庆才爬虫教程视频做的笔记。 1.什么是爬虫? 请求网站并提取数据的自动化程序。 2.爬虫的基本流程 发送请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。 ...
    99+
    2023-01-30
    爬虫 基本原理 Python
  • python 爬虫 5i5j房屋信息 获
    1 from lxml import etree 2 from selenium import webdriver 3 import pymysql 4 5 def Geturl(fullurl):#获取每个招聘网页的链接 ...
    99+
    2023-01-30
    爬虫 房屋信息 python
  • 如何使用python网络爬虫基于selenium爬取斗鱼直播信息
    这篇文章给大家分享的是有关如何使用python网络爬虫基于selenium爬取斗鱼直播信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、本文使用的第三方包和工具python 3.8  谷歌...
    99+
    2023-06-29
  • Python爬虫之爬取二手房信息
    前言 说到二手房信息,不知道你们心里最先跳出来的公司(网站)是什么,反正我心里第一个跳出来的是网站是 58 同城。哎呦,我这暴脾气,想到就赶紧去干。 但很显然,我失败了。说显然,而不...
    99+
    2022-11-12
  • 用python爬虫爬取CSDN博主信息
    一、项目介绍 爬取网址:CSDN首页的Python、Java、前端、架构以及数据库栏目。简单分析其各自的URL不难发现,都是https://www.csdn.net/nav/+栏目名...
    99+
    2022-11-12
  • Python网络爬虫与信息提取
    Requests安装 用管理员身份打开命令提示符: pip install requests 测试:打开IDLE: >>> import requests >>> r = requests.get("...
    99+
    2023-01-31
    爬虫 网络 信息
  • Python爬虫项目--爬取某宝男装信息
    本次爬取用到的知识点有: 1. selenium 2. pymysql 3  pyquery 正文 1. 分析目标网站 1. 打开某宝首页, 输入"男装"后点击"搜索", 则跳转到"男装"的搜索界面. 2. 空白处"右击"再点击"检查"审...
    99+
    2023-01-30
    爬虫 男装 项目
  • Java是怎么获取主机的基本信息
    Java是怎么获取主机的基本信息,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。最近在做一个主机资源监控的需求,首先是获取一些最简单的基本参,像一些主机名称、系统类型、ip、cp...
    99+
    2023-06-22
  • Python中怎么利用网络爬虫获取招聘信息
    Python中怎么利用网络爬虫获取招聘信息,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。定义一个class类继承object,定义init方法继承self,主函...
    99+
    2023-06-16
  • 详解Python爬虫的基本写法
    什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来。想抓取什么?这个由你来控制它咯。 比如它在...
    99+
    2022-06-04
    爬虫 写法 详解
  • Python爬虫之requests库基本介绍
    目录一、说明二、基本用法:总结一、说明 requests是一个很实用的Python HTTP客户端库,爬虫和测试服务器响应数据时经常会用到,requests是Python语言的第三方...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作