因为我最近在学习量化框架pyalgotrade比较忙,所以我写文章的时间比较少,因为白天要上课比较忙,所以我介绍一些有意义的数据。比如同花顺财经的技术选股。我们打开浏览器,搜搜同花顺财经进入数据我们看到数据中心有一个技术选股数据。我还是一样,提供的程序仅仅供交流学习,不得用于其他用途,更不能用于大规模获取数据,坚守爬虫原则,感谢同花顺提供的数据,让我们投资研究更容易。
需要程序关注微信公众,数据分析与运用,回复同花顺选股就可以了
我们点击技术选股,进入我们就会看到许多选股的数据。
我们可用看到有创新高,创新低,连续上涨,连续下跌,量价,等,下面有月高,半年高,一年高,历史高等,我们看月高的数据
我们看需要解析数据,比较难解析
下面是我结合akshare库写的图形界面,查这个数据非常的方便。代码很多
我们选择创新高,看一下效果
我们选择保存为桌面的数据文件
我们看一下数据。数据非常多
下面为我独立出来模块代码,同花顺技术选股。效果
下面为直接写的代码获取创新高程序,爬虫应该自己多动手
from urllib import request
import pandas as pd
import akshare as ak
from bs4 import BeautifulSoup
from lxml import etree
from openpyxl import load_workbook
import requests
url='http://data.10jqka.com.cn/rank/cxg/board/4/field/stockcode/order/desc/ajax/1/free/1/'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
'Referer':'http://data.10jqka.com.cn/rank/cxg/',
'Cookie':'log=; Hm_lvt_78c58f01938e4d85eaf619eae71b4ed1=1651495867; __utma=156575163.55348612.1651495956.1651495956.1651495956.1; __utmc=156575163; __utmz=156575163.1651495956.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1; __utmb=156575163.1.10.1651495956; Hm_lvt_60bad21af9c824a4a0530d5dbf4357ca=1651495964; Hm_lvt_f79b64788a4e377c608617fba4c736e2=1651495965; Hm_lpvt_78c58f01938e4d85eaf619eae71b4ed1=1651495970; Hm_lpvt_60bad21af9c824a4a0530d5dbf4357ca=1651495970; Hm_lpvt_f79b64788a4e377c608617fba4c736e2=1651495970; v=Axt5zlIB_c3JbQE5KNqqIydFqnSI8C3qKQbztA1a9nowdTVilcC_QjnUg_Ie'}
res=requests.get(url=url,headers=headers)
df_text=pd.read_html(res.text)
df=pd.DataFrame(df_text[0])
df.to_excel(r'C:\Users\Administrator\Desktop\同花顺技术选股.xlsx')
wb=load_workbook(r'C:\Users\Administrator\Desktop\同花顺技术选股.xlsx')
ws=wb['Sheet1']
ws.delete_rows(idx=2,amount=2)
wb.save(r'C:\Users\Administrator\Desktop\同花顺技术选股.xlsx')
下面为独立出来模块,同花顺技术选股程序代码
#快速查股票数据
#安装库的方式,wind+R,输入cmd,输入 py -m pip install 库名
#复制,粘贴道pycharm,点击运行就可用
import akshare as ak
import tkinter as tk
import tkinter
import pandas
import PySimpleGUI as sg
import seaborn as sns
import matplotlib.pyplot as plt
from finta import TA
import mplfinance as mpf
plt.rcParams['font.family']='SimHei'
plt.rcParams['axes.unicode_minus']=False
root=tk.Tk()
root.wm_title('快速查数据')
root.geometry('600x500')
menmenu=tk.Menu(root)
def stock_ths_cxg():#同花顺创新高
code=sg.popup_get_file('输入类型包括"创月新高", "半年新高", "一年新高", "历史新高"')
df=ak.stock_rank_cxg_ths(symbol=code)
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_ths_cxd():#同花顺选股创新低
code=sg.popup_get_file('输入类型包括"创月新高", "半年新高", "一年新高", "历史新高"')
df=ak.stock_rank_cxd_ths(symbol=code)
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_ths_lxss():#同花顺连续上涨
df=ak.stock_rank_lxsz_ths()
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_ths_lxxd():#同花顺连续下跌
df=ak.stock_rank_lxxd_ths()
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_ths_cxfl():#同花顺持续放量
df=ak.stock_rank_cxfl_ths()
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_ths_cxsl():#同花顺持续缩量
df=ak.stock_rank_cxsl_ths()
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_ths_xstp():#同花顺向上突破
code=sg.popup_get_file('输入突破类型"5日均线", "10日均线", "20日均线", "30日均线", "60日均线", "90日均线", "250日均线", "500日均线"')
df=ak.stock_rank_xstp_ths(symbol=str(code))
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_ths_xxtp():#同花顺向下突破
code=sg.popup_get_file('输入突破类型"5日均线", "10日均线", "20日均线", "30日均线", "60日均线", "90日均线", "250日均线", "500日均线"')
df=ak.stock_rank_xxtp_ths(symbol=str(code))
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_ths_ljqs():#同花顺量价齐升
df=ak.stock_rank_ljqs_ths()
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_ths_ljqd():#同花顺量价齐跌
df=ak.stock_rank_ljqd_ths()
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_ths_xzjp():#同花顺险资举牌
df=ak.stock_rank_xzjp_ths()
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
def stock_xgxd():#创新高创新低股票数量
lx=sg.popup_get_file('输入类型包括"all", "sz50", "hs300", "zz500"')
df=ak.stock_a_high_low_statistics(symbol=lx)
look=sg.popup_get_file('输入查看数据方式0代表弹窗查看,1代表保存到桌面数据文件')
if look=='0':
sg.popup(df)
elif look=='1':
df.to_excel(r'C:\Users\Administrator\Desktop\数据.xlsx')
jsxg_data=tk.Menu(root)
menmenu.add_cascade(label='技术选股',menu=jsxg_data)
jsxg_data.add_command(label='同花顺选股创新高',command=stock_ths_cxg)
jsxg_data.add_command(label='同花顺选股创新低',command=stock_ths_cxd)
jsxg_data.add_command(label='同花顺选股连续上涨',command=stock_ths_lxss)
jsxg_data.add_command(label='同花顺选股连续下跌',command=stock_ths_lxxd)
jsxg_data.add_command(label='同花顺选股持续放量',command=stock_ths_cxfl)
jsxg_data.add_command(label='同花顺选股持续缩量',command=stock_ths_cxsl)
#jsxg_data.add_command('同花顺选股向上突破',command=stock_ths_xstp)
#jsxg_data.add_command('同花顺选股向下突破',command=stock_ths_xxtp)
jsxg_data.add_command(label='同花顺选股量价齐升',command=stock_ths_ljqs)
jsxg_data.add_command(label='同花顺选股量价齐跌',command=stock_ths_ljqd)
jsxg_data.add_command(label='同花顺选股危资举牌',command=stock_ths_xzjp)
jsxg_data.add_command(label='创新低,创新高股票数量',command=stock_xgxd)
root['menu']=menmenu
root.mainloop()