python爬取雪球etf数据

准备工作:

python 3.9

开发工具:

pycharm

爬取分析:

首先进入雪球界面,然后开始翻找带返回k线数据的接口

既然数据有接口返回,那就直接从接口获取数据

实现代码:

"""
Author: cbk
Time: 2025/6/3 15:49
Project: examples-of-web-crawlers
"""
import requests
from bs4 import BeautifulSoup
import pandas as pd

# 设置请求头,模拟浏览器访问
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
    'cookie': 'xxxxxxx'
}

# 雪球网页地址(需要根据实际情况调整)
url = 'https://stock.xueqiu.com/v5/stock/chart/kline.json?symbol=SH512890&begin=1749024046307&period=week&type=before&count=-284&indicator=kline,pe,pb,ps,pcf,market_capital,agt,ggt,balance'

# 发送请求
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'  # 确保编码正确

# 解析网页内容
soup = BeautifulSoup(response.text, 'html.parser')

response.encoding = 'utf-8'  # 确保编码正确

# 检查请求是否成功
if response.status_code == 200:
    # 解析JSON数据
    data = response.json()

    # 提取数据
    columns = data['data']['column']
    items = data['data']['item']

    # 创建DataFrame
    df = pd.DataFrame(items, columns=columns)

    # 将毫秒级时间戳转换为日期字符串
    df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')

    # 导出到Excel文件
    df.to_excel('红利低波ETF_实时行情.xlsx', index=False)

    print("数据已成功导出到 红利低波ETF_实时行情.xlsx 文件中!")
else:
    print(f"请求失败,状态码: {response.status_code}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值