专栏首页py+seleniumpython爬取连续一字板股票及当时日期数据【原创分享】

python爬取连续一字板股票及当时日期数据【原创分享】

  本篇为个人测试记录,记录爬取连续一字板的股票及当时日期。

import tushare as ts
import pandas as pd
import time


# 筛选一字板的策略
def gp_rules(code):
    # 获取某只股票的历史数据
    data = ts.get_hist_data(code, start='2018-01-01', end='2019-07-26')
    # 排除该时间段无数据的股票
    if data is None:
        return

    # 筛选表头【开盘价,收盘价, 涨幅】
    data_2 = data.iloc[:, [0, 2, 6]]
    # 筛选出涨幅大于9%且开盘价等于收盘价的股票,即一字涨停的股票(有待优化~)
    data_3 = data_2[(data_2['p_change'] > 9) & (data_2['open'] == data_2['close'])]
    # 去除不存在一字板的股票(即空数据)
    if data_3.index is None:
        return
    line = len(data_3)
    f, s = 1, 0
    # 遍历检查是否连续的一字板
    for n in range(0, line):

        # 检查是否连续的一字板
        if int(data_3['open'][n] * (data_3['p_change'][n]/100 + 1)) == int(data_3['open'][n-1]):
            f = f + 1
            # 若4连或4连以上一字板则打印代码及当时日期
            if f >= 5 and s == 0:
                print(code, data_3.index[n-4])
                s = 1
        else:
            f = 1


# 筛选股票代码
def get_code():
   # 自己获取
    TOKEN = 'xxxx'
    pro = ts.pro_api(token=TOKEN)
    # 筛选代码,上市日期
    get_codedata = pro.stock_basic(exchange='', list_status='L', fields='symbol, list_date')
    # 将list_date改为日期格式并转为索引
    get_codedata['list_date'] = pd.to_datetime(get_codedata['list_date'])
    get_codedata = get_codedata.set_index('list_date')
    # 筛选2018-01-01前的数据,取code,转为list
    symbol_list = get_codedata[:'2018-01-01']['symbol'].tolist()
    return symbol_list


# 测试运行时间
start = time.clock()


code_list = get_code()
print("正在爬取符合策略的股票,请耐心等待......")

for code in list(code_list):
    time.sleep(1.4)
    gp_rules(code)


print("爬取筛选完成!")
end = time.clock()

print('运行时间:%s Seconds' % (end-start))

如有错误,请及时指正,谢谢!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python爬取新浪股票数据—绘图【原创分享】

    逆向小白
  • python3运行调用htmltestrunner时,报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0

    但是双击运行却报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0

    逆向小白
  • linux下运行python3出现TypeError: a bytes-like object is required, not 'str'

     以上代码用python3运行后,出现TypeError: a bytes-like object is required, not 'str'

    逆向小白
  • 51.如何裁剪图片

    图像在我们日常生活中,可谓是随处都可见。智能手机的普及,让每个人都可以很方便的完成照片或视频的拍摄。虽然当前在手机上裁剪图片很方便,但是如果需要处理大量的图像,...

    TalkPython
  • 巧妙复制一个流

    实际业务中可能出现重复消费一个可读流的情况,比如在前置过滤器解析请求体,拿到body进行相关权限及身份认证;认证通过后框架或者后置过滤器再次解析请求体传递给业务...

    欲休
  • Elasticsearch 基本命令

    Elasticsearch 命令的一般格式是:REST VERBHOST:9200/index/doc-type— 其中 REST VERB 是 PUT、GET...

    ZhangXianSheng
  • 前端开发介绍(包含调试什么的)

    http://www.cnblogs.com/jikey/p/4259360.html

    bear_fish
  • 惊艳!Python3 的这几个特性

    距离官方放弃Python2的时间越来越近,很多项目也逐渐的开始放弃对Python2的支持,比如Django,IPython这些框架就走在了最前列,Python2...

    py3study
  • 用madge来绘制项目的依赖图

    今天早上刚发现,很犀利的一个模块依赖检查工具,并可以可视化的绘制出来,支持AMD\CommonJS\ES6等模块依赖。

    libo1106
  • LeakCanary使用手册

    demo 一个非常简单的 LeakCanary demo: https://github.com/liaohuqiu/leakcanary-demo 开始使用 ...

    xiangzhihong

扫码关注云+社区

领取腾讯云代金券