1 #该脚本可以提取沪深两市上市公司股票信息,并按以下信息分类:(1)当天股价创近10个交易日新高的股票;(2)停牌的股票;(3)复牌不超过一个交易日或者新发行的股票

2 #将分类后的股票及其信息(股价新高、当前状态等)存入mysql数据库

3 from time import *

4 importpandas as pd5 importtushare as ts6 from datetime importdate7 importdatetime8 importMySQLdb9 importsys10 reload(sys)11 sys.setdefaultencoding('utf8') #将编码方式默认改为utf-8

12 #-------------------------------定义函数:计算当天往前推Deltadays个交易日所对应的日期--------------------------

13 defcom_StartDate(Deltadays):14 i=015 da=date.today()16 while i!=Deltadays:17 da=da-datetime.timedelta(days=1)18 if da.isoweekday()==6 or da.isoweekday()==7: #判断当前日期是否为周末(此处未考虑法定节假日,后续改进)

19 pass

20 else:21 i+=1

22 return da.strftime("%Y-%m-%d") #返回值数据类型为string

23

24 #--------------定义函数:判断某支股票处于什么状态,并返回股票代码、名字和股价(对于创新高的股票)等信息--------

25 defstock_info(stockID,startdate,index):26 today=date.today()27 df=ts.get_hist_data(stockID,start=startdate,end=today.strftime("%Y-%m-%d")) #获取股票信息

28 if type(df)!=type(None) and len(df.index)>1: #抓取时间周期内,有数据天数低于2天的,算作新股

29 df=df.reindex(index=index,method='ffill',fill_value=int(-1))30 period_high=df['high'].max()31 today_high=df.ix[today.strftime("%Y-%m-%d")]['high']32 if today_high>=period_high and today_high>0 :33 stock_status=int(0) #非新股,未停牌,股价创新高

34 returnstock_status,df35 elif today_high==int(-1):36 stock_status=int(1) #非新股,但停牌

37 returnstock_status,df38 else:39 stock_status=int(2) #非新股,未停牌,股价未创新高

40 returnstock_status,df41 else:42 stock_status=int(3) #新股或复牌不超过1天的股票

43 returnstock_status,df44

45 #-----------------------------------------------获取沪深两市所有 上市公司基本信息---------------------------

46 all_stocks_info=ts.get_stock_basics()47 Deltadays=10

48 startdate=com_StartDate(Deltadays)49 newRecStocksID=[] #股票价格创新高的股票代码列表

50 newRecStocksPrice=[] #创新高的股票价格列表

51 newRecStocksName=[] #股票价格创新高的股票名称列表

52 suspendedStocksID=[] #停牌股票代码列表

53 suspendedStocksName=[] #停牌股票名称列表

54 newORresumeStocksID=[] #新发行或者当天复牌的股票代码列表

55 newORresumeStocksName=[] #新发行或者当天复牌的股票名称列表

56 today=date.today()57 index=ts.get_hist_data('002625',start=startdate,end=today.strftime("%Y-%m-%d"),retry_count=10,pause=1).index58 for i inall_stocks_info.index:59 stock_status,stockinfo=stock_info(str(i), startdate,index)60 if stock_status==int(0): #当日股价创Deltadays天内新高的股票

61 newRecStocksID.append(str(i).zfill(6))62 newRecStocksName.append(all_stocks_info.ix[str(i),'name'])63 newRecStocksPrice.append(stockinfo.ix[today.strftime("%Y-%m-%d"),'high'])64 elif stock_status==int(1): #已停牌的股票

65 suspendedStocksID.append(str(i).zfill(6))66 suspendedStocksName.append(all_stocks_info.ix[str(i), 'name'])67 elif stock_status==int(2): #未停牌,且股价未创Deltadays天内新高的股票

68 pass

69 else: #该股票为新发行或者复牌不超过一天的股票

70 newORresumeStocksID.append(str(i).zfill(6))71 newORresumeStocksName.append(all_stocks_info.ix[str(i), 'name'])72

73 #-------------------------------------------数据写入DataFrame----------------------------------------------

74 newRecStocks=pd.DataFrame({'stockID':newRecStocksID,'stockname':newRecStocksName,'high_price':newRecStocksPrice,'status':['NewRecord']*len(newRecStocksID)})75 suspendedStocks=pd.DataFrame({'stockID':suspendedStocksID,'stockname':suspendedStocksName,'status':['Suspended']*len(suspendedStocksID)})76 newORresumeStocks=pd.DataFrame({'stockID':newORresumeStocksID,'stockname':newORresumeStocksName,'status':['New or Resume']*len(newORresumeStocksID)})77

78 #-----------------------------------将数据存入MySQL数据库,数据库名称:stocks------------------------------

79 db=MySQLdb.connect('localhost','root','900417','stocks',charset='utf8')80 pd.io.sql.to_sql(frame=newRecStocks,con=db,name=today.strftime("%Y%m%d")+'newRecordStocks',flavor='mysql',schema=None,if_exists='replace',index=True,index_label=None,chunksize=1000,dtype=None)81 pd.io.sql.to_sql(frame=suspendedStocks,con=db,name=today.strftime("%Y%m%d")+'suspendedStocks',flavor='mysql',schema=None,if_exists='replace',index=True,index_label=None,chunksize=1000,dtype=None)82 pd.io.sql.to_sql(frame=newORresumeStocks,con=db,name=today.strftime("%Y%m%d")+'newORresumeStocks',flavor='mysql',schema=None,if_exists='replace',index=True,index_label=None,chunksize=1000,dtype=None)83 db.commit()84 db.close()

python 上市公司 概念股_用Python获取沪深两市上市公司股票信息,提取创近10天股价新高的、停牌的、复牌不超过一天或者新发行的股票,并存入mysql数据库...相关推荐

  1. Python爬取股票数据存入mysql数据库,获取股票(最新、最高、今开、成交量、成交额、量比、换手率、涨幅等)支持多线程+数据库连接池

    项目简介 (Python)爬虫 + MySQL + Redis项目. 爬取下来的数据可用于后续的数据分析(我计划将其用于我的毕业设计). 未来会将数据分析的可视化部署到服务器上, 并添加股票降价通知的 ...

  2. python爬虫开发数据库设计入门经典_Python3实现的爬虫爬取数据并存入mysql数据库操作示例...

    本文实例讲述了Python3实现的爬虫爬取数据并存入mysql数据库操作.分享给大家供大家参考,具体如下: 爬一个电脑客户端的订单.罗总推荐,抓包工具用的是HttpAnalyzerStdV7,与chr ...

  3. 用 Python selenium爬取股票新闻并存入mysql数据库中带翻页功能demo可下载

    用 Python selenium爬取实时股票新闻并存入mysql数据库中 1.分析需求 2.创建表 3.分析需要爬取的网页内容 4.python里面selenium进行爬虫操作 1.添加包 2.连接 ...

  4. mysql数据库时间突然是12小时制_为什么存入mysql数据库中的timestamp,晚了13或14个小时...

    # 为什么存入mysql数据库中的timestamp,晚了13个小时 ## 查看数据库时区 ``` show variables like '%time_zone%'; select @@global ...

  5. python爬取新闻存入数据库_python 爬取古诗文存入mysql数据库的方法

    使用正则提取数据,请求库requests,看代码,在存入数据库时,报错ERROR 1054 (42S22): Unknown column 'title' in 'field list'.原来是我写s ...

  6. Python 分析Nginx 日志并存入MySQL数据库(单线程)

    使用Python 分析Nginx access 日志,根据Nginx日志格式进行分割并存入MySQL数据库.(参考网上一些文章) Nginx access日志格式如下: #使用的nginx默认日志格式 ...

  7. python爬虫之搜索51job并存入mysql数据库

    简介 在python爬虫之51job工作搜索我们只是通过python函数将其简单打印,在此我们将其进行封装成类,打印并写入mysql数据库中. 因此我们首先需要设计mysql的库和表结构,在此我们只用 ...

  8. mysql时间戳13小时_为什么存入mysql数据库中的timestamp,晚了13或14个小时

    为什么存入mysql数据库中的timestamp,晚了13或14个小时 使用markdown,方便大家浏览,就又更新了一下 查看数据库时区 show variables like '%time_zon ...

  9. python爬虫:爬取动态网页并将信息存入MySQL数据库

    目标网站 http://www.neeq.com.cn/disclosure/supervise.html 爬取网页该部分内容 网页分析 查看网页源代码发现没有表格部分内容,对网页请求进行分析 F12 ...

  10. 爬取Github Web API 并存入Mysql数据库

    写在前面 本文内容为爬取GitHub的Web API并存入mysql数据库,内容为华为鸿蒙OS相关的代码. WEB API Web API是网络应用程序接口.它包含了广泛的功能,网络应用通过API接口 ...

最新文章

  1. 【AAAI2022】TLogic:时序知识图谱上可解释链接预测的时间逻辑规则
  2. 窗口消息——Windows核心编程学习手札之二十六
  3. String类中的intern()方法详解
  4. 浮点数赋值给整数_初学者专题:变量和赋值
  5. java名称服务_java – UnknownHostException:名称或服务未知
  6. 删除China Lucky系列病毒 后缀.evopro勒索病毒数据恢复方法,解密处理方式
  7. 机器学习笔记0_学习资料整理
  8. Elastic Search 学习笔记
  9. mysql sum 删除_如果mysql磁盘满了,会发生什么?还真被我遇到了~
  10. 京瓷打印机m5521cdn_京瓷ECOSYS M5521cdn打印机驱动下载
  11. 143_iOS干货50_认识几个概念:跨域问题和内网穿透
  12. linux子系统下载错误,Win10系统开启linux子系统报错“0x80070057”怎么办?
  13. 最全最丰富的随机图片调用接口——三千之图
  14. 绝不要用的 Linux 命令 !
  15. 疑惑!AI中台到底为什么火了?道翰天琼认知智能机器人平台API接口为您揭秘。
  16. 套接字的连接(服务器与客户端一对一的连接)
  17. 红米电竞路由器AX5400与红米路由器AX5400哪个值得买? 两者区别介绍
  18. ArcGIS 网络分析[2.3] 最近设施点
  19. 三维星座图查询_微信我的三维星座图测试游戏
  20. director入门

热门文章

  1. 1月24日,30秒知全网,精选7个热点
  2. 响铃:齐家网香港敲锣成唯一第一梯队,其他人怎么办?
  3. 网络工程师成长日记328-更换内存
  4. 工作种能够用的上的10张工逻辑图,送给奋斗中的职场人
  5. 使用grubby更改RHEL7/8/9的默认内核
  6. 使用RecycleView加载不同的布局(类似淘宝京东购物车+推荐商品列表)
  7. 武理MOOC课程《认识武理》单元测验答案
  8. iOS 传包时 提示“No App Store Connect access for the team”的问题
  9. android进程常驻
  10. python读写练习