iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python 简单的股票基金爬虫
  • 740
分享到

python 简单的股票基金爬虫

python股票爬虫python基金爬虫 2022-06-02 22:06:18 740人浏览 泡泡鱼

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

摘要

目录项目地址所用到的技术开始编写爬虫项目地址 https://GitHub.com/aliyoge/fund_crawler_py 所用到的技术 IP代理池 多线程 爬虫 sql

目录

项目地址

https://GitHub.com/aliyoge/fund_crawler_py

所用到的技术

  1. IP代理池
  2. 多线程
  3. 爬虫
  4. sql

开始编写爬虫

首先,开始分析天天基金网的一些数据。经过抓包分析,可知: ./fundcode_search.js包含所有基金代码的数据。

根据基金代码,访问地址: fundgz.1234567.com.cn/js/ + 基金代码 + .js可以获取基金实时净值和估值信息。

根据基金代码,访问地址: fundf10.eastmoney.com/FundArcHivesDatas.aspx?type=jjcc&code= + 基金代码 + &topline=10&year=2021&month=3可以获取第一季度该基金所持仓的股票。

由于这些地址具有反爬机制,多次访问将会失败的情况。所以需要搭建IP代理池,用于反爬。搭建很简单,只需要将proxy_pool这个项目跑起来就行了。


# 通过这个方法就能获取代理
def get_proxy():
    return requests.get("Http://127.0.0.1:5010/get/").JSON()

搭建完IP代理池后,我们开始着手多线程爬取数据的工作。使用多线程,需要考虑到数据的读写顺序问题。这里使用python中的队列queue存储基金代码,不同线程分别从这个queue中获取基金代码,并访问指定基金的数据。因为queue的读取和写入是阻塞的,所以可确保该过程不会出现读取重复和读取丢失基金代码的情况。


# 获取所有基金代码
fund_code_list = get_fund_code()
fund_len = len(fund_code_list)

# 创建一个队列
fund_code_queue = queue.Queue(fund_len)
# 写入基金代码数据到队列
for i in range(fund_len):
    # fund_code_list[i]也是list类型,其中该list中的第0个元素存放基金代码
    fund_code_queue.put(fund_code_list[i][0])

现在开始编写获取所有基金的代码。


# 获取所有基金代码
def get_fund_code():
    ...

    # 访问网页接口
    req = requests.get("http://fund.eastmoney.com/js/fundcode_search.js",
                    timeout=5,
                    headers=header)

    # 解析出基金代码存入list中
    ...

    return fund_code_list

接下来是从队列中取出基金代码,同时获取基金详情和基金持仓的股票。


# 当队列不为空时
while not fund_code_queue.empty():

    # 从队列读取一个基金代码
    # 读取是阻塞操作
    fund_code = fund_code_queue.get()

    ...

    try:
        # 使用该基金代码进行基金详情和股票持仓请求
        ...

获取基金详情


# 使用代理访问
req = requests.get(
    "http://fundgz.1234567.com.cn/js/" + str(fund_code) + ".js",
    proxies={"http": "http://{}".fORMat(proxy)},
    timeout=3,
    headers=header,
)
# 解析返回数据
...

获取持仓股票信息


# 获取股票投资明细
req = requests.get(
    "http://fundf10.eastmoney.com/FundArchivesDatas.aspx?type=jjcc&code="
    + str(fund_code) + "&topline=10&year=2021&month=3",
    proxies={"http": "http://{}".format(proxy)},
    timeout=3,
    headers=header,
)
# 解析返回数据
...

准备一个数据库,用于存储数据和对数据进行筛选分析。这里推荐一个方便的云数据库,一键创建,一键查询,十分方便,而且是免费的哦。前往MemFireDB注册一个账号就能使用。注册邀请码:6mxJl6、6mYjGY;

创建好数据库后,点击连接信息填入代码中,用于连接数据库。


# 初始化数据库连接:
engine = create_engine(
'postgresql+psycopg2://username:passWord@ip:5433/dbname')

将数据写入数据库中。


with get_session() as s:
    # create fund
    ...

    if (create):
        s.add(fund)

    s.commit()

到这里,大部分工作已经完成了,我们在main函数中开启线程,开始爬取。


# 在一定范围内,线程数越多,速度越快
for i in range(50):
    t = threading.Thread(target=get_fund_data, name="LoopThread" + str(i))
    t.start()

等到爬虫运行完成之后,我们打开MemFireDB,点击对应数据库的SQL查询按钮,就可以查看我们爬取的数据。哇!我们获取到了6432条数据。

接下来让我们来看看这些基金最喜欢买哪些股票吧。输入SQL语句select poscode, posname, count(*) as count, cast(sum(poscost) as int) from fund group by poscode, posname order by count desc limit 10;

它就是茅台!

以上就是Python 简单的股票基金爬虫的详细内容,更多关于python 股票基金爬虫的资料请关注编程网其它相关文章!

--结束END--

本文标题: python 简单的股票基金爬虫

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

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

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

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

下载Word文档
猜你喜欢
  • python爬虫爬取股票的北上资金持仓数据
    目录前言数据分析数据抓取建立模型总结前言 前面已经讲述了如何获取股票的k线数据,今天我们来分析一下股票的资金流入情况,股票的上涨和下跌都是由资金推动的,这其中的北上资金就是一个风向标...
    99+
    2024-04-02
  • python爬虫爬取股票的k线图
    目录前言数据来源分析数据抓取总结前言 之前已经讲述了一些关于;python;获取基金的一些信息,最近又有了一些新发现,和大家分享一下,这个是非常重要的内容,非常重要的内容。这个数据也...
    99+
    2024-04-02
  • Python简单爬虫
    爬取链家二手房源信息import requests import re from bs4 import BeautifulSoup import csv url = ['https://cq.lianjia.com/ershoufang/...
    99+
    2023-01-31
    爬虫 简单 Python
  • Python股票数据定向爬虫是怎么样的
    Python股票数据定向爬虫是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。功能简介目标: 获取上交所和深交所所有股票的名称和交易信息。输出: 保存到文件中。技术路线:...
    99+
    2023-06-17
  • Python爬虫获取基金列表
    目录1 前言2 哪里去获取数据呢3 怎么抓取数据呢1 前言 python爬虫用来收集数据是最直接和常用的方法,可以使用python爬虫程序获得大量的数据,从而变得非常的简单和快速;绝...
    99+
    2024-04-02
  • python简单爬虫笔记
    python模拟游览器爬取相关页面 import urllib.request url="https://blog.51cto.com/itstyle/2146899" #模拟浏览器 headers=("User-Agent","Moz...
    99+
    2023-01-31
    爬虫 简单 笔记
  • Python 简单业务爬虫
    如何快速下载贴吧图片呢?#!/usr/bin/python # -*- coding: UTF-8 -*- import urllib import re def getHtml(url):     page = urllib.urlop...
    99+
    2023-01-31
    爬虫 简单 业务
  • Python爬虫获取基金基本信息
    目录1 前言2 如何抓取基本信息3 xpath 获取数据4 bs4 获取数据5 最终结果展现1 前言 上篇文章Python爬虫获取基金列表我们已经讲述了如何从基金网站上获取基金的列表...
    99+
    2024-04-02
  • python爬虫之基金信息存储
    目录1 前言2 信息存储2.1 基金基本信息存储2.2 基金变动信息获取3 需要改进的地方3.1 基金类型3.2 基金的更新顺序4 总结1 前言 前面已经讲了很多次要进行数据存储,终...
    99+
    2024-04-02
  • python实现简单爬虫--爬图片
    首先有两个功能需求:第一:获取到要爬的页面html内容;第二:使用正则表达式进行匹配并进行保存到本地。#!/usr/bin/env python #encoding:utf-8 import urllib import re def get...
    99+
    2023-01-31
    爬虫 简单 图片
  • 多线程+代理池爬取天天基金网、股票数据(
    目录 简介 技术路线 编写思路 数据格式 功能截图 配置说明 补充 ...
    99+
    2023-01-31
    多线程 基金 股票
  • 一个简单的python爬虫,爬取知乎
    一个简单的python爬虫,爬取知乎主要实现 爬取一个收藏夹 里 所有问题答案下的 图片文字信息暂未收录,可自行实现,比图片更简单具体代码里有详细注释,请自行阅读项目源码:# -*- coding:utf-8 ...
    99+
    2023-06-02
  • Python爬虫获取基金变动信息
    目录1 前言2 抓取变动信息2.1 基金的变动信息获取2.2 基金阶段信息的抓取3 最终结果展现1 前言 前面文章Python爬虫获取基金列表、Python爬虫获取基金基本信息我们已...
    99+
    2024-04-02
  • python爬虫之场内ETF基金获取
    目录1 前言2 ETF列表和简称3 ETF 信息获取3.1 ETF列表信获取3.2 获取基金的简称4 最终结果展示1 前言 之前已经介绍了基金的变动信息,但是这些基金都是属于场外的,...
    99+
    2024-04-02
  • 基于node.js如何制作简单爬虫
    这篇文章主要为大家展示了“基于node.js如何制作简单爬虫”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于node.js如何制作简单爬虫”这篇文章吧。目标:...
    99+
    2024-04-02
  • 基于node.js怎么制作简单爬虫
    这篇文章主要讲解了“基于node.js怎么制作简单爬虫”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于node.js怎么制作简单爬虫”吧!目标:爬取 http://tweixin.yuey...
    99+
    2023-06-17
  • python爬虫之pyppeteer库简单使用
    pyppeteer 介绍Pyppeteer之前先说一下Puppeteer,Puppeteer是谷歌出品的一款基于Node.js开发的一款工具,主要是用来操纵Chrome浏览器的 AP...
    99+
    2024-04-02
  • python简单爬虫--get方式详解
    目录环境准备进行爬虫参考总结简单爬虫可以划分为get、post格式。其中,get是单方面的获取资源,而post存在交互,如翻译中需要文字输入。本文主要描述简单的get爬虫。 环境准备...
    99+
    2024-04-02
  • python爬虫-简单使用xpath下载
      首先 1.为方便以下进行       谷歌浏览器里要安装xpath脚本  2.下载一个lmxl     命令:pip install lxml 3. 以下三张图是一个,当时爬的 《糗事百科》里的图片   值的注意的是:在爬取接口时,要...
    99+
    2023-01-30
    爬虫 简单 python
  • Python爬虫获取基金净值信息详情
    目录1 前言2 获取基金净值3 数据库结构设计4 如何进行数据存储5 总结1 前言 前面的文章中我们已经获取到了基金的阶段变动信息和ETF信息的获取,那么在本章中,我们将继续前面的内...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作