Python金融=>[基金数据采集]

目录

导言

Python金融

数据采集

源代码

采集基金数据效果


导言

不要买手机APP推荐的基金,之前就是这样买债基,差点踩了大雷,亏掉20%,还好是房子装修要钱,提前取了出来,纯属靠运气躲过。总共两家公司的两只纯债基,都是手机APP推荐给我的,如果我不及时撤退,那真是太惨了。也尽量不要买封闭债基,特别是18个月以上的,如果踩雷,都赎回不了,只能眼睁睁的看着被烧成灰,世间最大的痛苦莫过如此。芒格说过,如果厨房发现一只蟑螂,那么绝对不止一只。如果一家基金公司纯债踩雷,那么说明这家公司纯债水平很差,不要碰这家公司的任何产品,最起码也不要碰债基产品,并把公司打入黑名单。

Python金融

学了点Python,加上又有点小钱,投资是必要的。之前投主动基金,交了一万五的学费,我算是毕业了,不想再交学费。银行利率和货基实在是收益太低,就琢磨搞点债基玩玩,正好Python适合大数据分析,帮我排排雷。如果尽量排除各种风险,那么赚钱的几率就更高,只想着赚钱,忘掉风险,最后都会亏成狗!

数据采集

基金的数据量并不是很大,就不需要API接口了,也不需要爬虫,直接用selenium模拟人操作即可。为了一次性显示全面,就用selenium模拟鼠标滚轮滚到底,好一次性采集所有债基的数据,然后根据ID来获取表格内容,最后来点字符串修正,好让最后的CSV活成自己想要的样子。

源代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import datetime, time
import csv

systime= datetime.datetime.now()
today= datetime.datetime.strftime(systime,'%Y-%m-%d')

# 创建Chrome的Options对象
chrome_options = Options()
# 设置为无头模式
chrome_options.add_argument('--headless')
# 创建Chrome浏览器驱动实例,传入配置好的Options
driver = webdriver.Chrome(options=chrome_options)

# 导航到目标网页
driver.get('基金网站网址')

# 初始滚动高度
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
    # 滚动页面
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    # 等待一段时间让页面加载新内容
    time.sleep(0.2)  # 根据实际情况调整等待时间
    # 获取新的滚动高度
    new_height = driver.execute_script("return document.body.scrollHeight")
    # 如果新的滚动高度与上一次相同,则认为已到达页面底部或没有更多内容可加载
    if new_height == last_height:
        break
        # 更新滚动高度,用于下一次循环比较
    last_height = new_height

# 获取div元素中的文本内容
div_element = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, 'tableMain')))

sFile = div_element.text.replace('购买','').replace('自选','').replace('对比','').replace('今年以来','今年以来 近一月').replace('\n\n','')

print('开始写入数据')
filename = rf"E:\AnyuanCoporation\BondsInfo_{today}.csv"
with open(filename, mode='w',newline='') as csvfile:
    writer = csv.writer(csvfile, quoting=csv.QUOTE_MINIMAL)
    for line in sFile.split('\n'):
        writer.writerow(line.split())
# 关闭浏览器窗口
driver.quit()

print('写入完毕')

采集基金数据效果

最后取到的csv文件格式如下,主要目的是用Python,设计到具体基金信息打码掉,o(* ̄︶ ̄*)o

  • 14
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值