利用python获取股票涨停板数据

# -*- coding: utf-8 -*-
"""
Created on Tue Nov  9 14:06:32 2021

@author: ThinkPad
"""
#【Python量化】
import pandas as pd
import numpy as np
import csv 
import pyecharts
#画图
import matplotlib.pyplot as plt
#正确显示中文和负号
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
#处理时间
from dateutil.parser import parse
from datetime import datetime,timedelta
#获取本地数据
df=pd.read_csv(r'E:\量化之路\up_limit_data.csv')
#统计
df.iloc[:,1:].describe().round(2)
#涨停股价格区间
def dy_zh(data, cut_points, labels=None): 
    min_num = data.min() 
    max_num = data.max() 
    break_points = [min_num] + cut_points + [max_num]
    if not labels: 
        labels = range(len(cut_points)+1)
    else: 
         labels=[labels[i] for i in range(len(cut_points)+1)] 
    dataBin = pd.cut(data,bins=break_points,
         labels=labels,include_lowest=True)    
    return dataBin 

cut_points = [10,30,50,100] 
labels=['10元以下', '10-30元','30-50元','50-100元','100元以上'] 
#调用函数dy_zh,增加新列
df['价格区间'] = dy_zh(df['close'], cut_points, labels) 
#查看标签列,取值范围前面加上了序号,是便于后面生成表格时按顺序排列
#df.head()
#使用柱状图展示不同价格区间下涨停个股数量分布。
group_price=df.groupby('价格区间')['trade_date'].count()

plt.figure(figsize=(12,5))
colors=['#1f77b4','#ff7f0e','#2ca02c','#d62728','#9467bd','#8c564b']
fig=plt.bar(group_price.index,group_price.values,color=colors[:5]);
#自动添加标签
def autolabel(fig):
    for f in fig:
        h=f.get_height()
        plt.text(f.get_x()+f.get_width()/2,1.02*h,
        f'{int(h)}',ha='center',va='bottom')
autolabel(fig)

#涨停板排名
def plot_bar(group_data):
    plt.figure(figsize=(16,5))
    fig=plt.bar(group_data.index,group_data.values);
    autolabel(fig)
    plt.title('2016-2021涨停板排名前20',size=15);

group_name=df.groupby('name')['ts_code'].count().sort_values(ascending=False)[:20]
plot_bar(group_name)

#分别剔除ST、*ST和新股(N开头)
df_st=df[-(df.name.str.startswith('ST') | df.name.str.startswith('*ST')|df.name.str.startswith('N'))]
group_name_st=df_st.groupby('name')['ts_code'].count().sort_values(ascending=False)[:20]
plot_bar(group_name_st)


1

2

3

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要使用 Python 爬取股票信息,您需要执行以下步骤: 1. 安装相关库,例如 Requests 和 BeautifulSoup。 2. 找到股票信息的数据源,通常可以在金融网站或第三方数据提供商处获得。 3. 发送 HTTP 请求并获取响应数据。 4. 对响应数据进行解析,例如使用 BeautifulSoup 解析 HTML 数据。 5. 提取您所需的股票信息。 6. 将股票信息存储在文件中或使用 Pandas 进行数据分析。 这是一个简单的爬取股票信息的流程,但具体的实现方式可能因数据源和所需信息而异。 ### 回答2: 要用Python爬取股票信息,可以使用第三方库如BeautifulSoup和requests来实现。 首先,需要使用requests库发送HTTP请求来获取股票网站的HTML代码。例如,可以使用以下代码获取新浪财经的股票页面: ```python import requests url = 'http://finance.sina.com.cn/realstock/company/sh000001/nc.shtml' response = requests.get(url) html = response.text ``` 接下来,可以使用BeautifulSoup库来解析HTML代码。可以通过观察股票页面的HTML结构,找到需要获取的信息的元素和类名,并使用BeautifulSoup的相应方法来提取数据。例如,可以使用以下代码来获取股票的名称和当前价格: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html.parser') name = soup.find(class_='name').text price = soup.find(class_='price_now').text ``` 然后,可以将获取到的股票信息进行处理和存储。可以将信息打印出来,或者存储到数据库或文件中以供后续分析使用。例如,可以使用以下代码将股票信息打印出来: ```python print('股票名称:', name) print('当前价格:', price) ``` 当然,以上只是获取股票信息的基本示例,实际应用中可能需要根据具体情况进行相应的修改和扩展。需要注意的是,在进行网页爬取时,应该遵守网站的使用规范和法律法规,避免对目标网站造成不必要的影响和纠纷。 ### 回答3: 使用Python爬取股票信息的核心步骤如下: 1. 导入需要的库:首先需要导入`requests`库用于发送HTTP请求,以及`beautifulsoup4`库用于解析HTML页面。 2. 发送HTTP请求:使用`requests`库发送GET请求到对应的股票网站,获取股票页面的HTML源代码。 3. 解析HTML页面:使用`beautifulsoup4`库解析HTML页面,找到包含股票信息的标签或类名。 4. 提取股票信息:通过调用`beautifulsoup4`库提供的方法,提取需要的股票信息,并将其存储到合适的数据结构中,例如列表或字典。 5. 数据处理与存储:根据需求对爬取到的数据进行进一步处理,例如筛选指定股票数据清洗或计算。最后可以选择将数据存储到文件或数据库中。 下面是一个简单的示例代码,爬取新浪财经上的某只股票的实时股价: ```python import requests from bs4 import BeautifulSoup # 构造URL stock_code = 'sh600000' # 上证指数 url = f'https://hq.sinajs.cn/list={stock_code}' # 发送HTTP请求,获取页面HTML源代码 response = requests.get(url) html = response.text # 解析HTML页面 soup = BeautifulSoup(html, 'html.parser') # 提取股票信息 data = soup.text.split(',') stock_name = data[0].split('"')[1] # 股票名称 stock_price = float(data[3]) # 实时股价 # 打印股票信息 print(f'{stock_name}: {stock_price}元') ``` 以上代码首先构建了一个URL,指定了想要爬取的股票代码。然后使用`requests`库发送GET请求,获取返回的HTML源码。接着,使用`beautifulsoup4`库解析HTML页面,找到包含股票信息的标签或类名。最后,通过提取所需的股票信息,例如股票名称和实时股价,进行数据处理和打印输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值