炒股软件画图哪现货原油首选金狗个好(炒股软件上怎样随意画图)
网站剖析在网页上更改日期查询后,网址没有改动,页面也没有改写,初步判断经过 Ajax 进行异步更新。在 Chrome 浏览器上,右键点击 inspect,检查 Network 模块下的 JS 标签。这时再次切换查询日期,便会在 JS 标签左边面板里找到真实的恳求 URL(如 query.sse/marketdata/tradedata/queryTopMktValByPage.do?&jsonCallBack=jsonpCallback12925&isPagination=true&searchDate=2021-01-01&_=1610296018800),可见恳求 URL 需求咱们装备以下的参数:jsonCallBack:测验后不传入也不影响isPagination:truesearchDate:查询日期_:时刻戳,不传入也不影响点击恳求 URL 后能够经过右侧面板的 Preview、Response 标签协助咱们检查该条恳求是不是有爬虫想要的数据回来成果中。数据抓取Requests 库对其进行抓取,Requests 库是 Python 最简略易用的 库,咱们能够经过它来构建 URL 的恳求,并获取其 response 成果。一般来说,要构建一个 恳求,需求传入恳求头(header),恳求地址,恳求办法(GET 或 POST 等)和 协议版别。别的,依据前面的网站剖析,咱们还需求给 URL 传入参数,Requests 库供给了 params 关键字参数,答应咱们以一个字典来装备 URL 所需的参数。
import requests\nparams = params = {\n????"isPagination": "true",\n????"searchDate": "2021-01-11"\n}\n\nheaders = {\n????"Referer": "sse/market/stockdata/marketvalue/",\n????"Accept-Encoding": "gzip, deflate",\n????"Connection": "keep-alive",\n????"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"\n}\n\nurl="query.sse/marketdata/tradedata/queryTopMktValByPage.do"\n\nresponse = requests.get(url, headers = headers, params = params)\n\nprint(response.text)\n
最终 response.text 的输出成果是一个嵌套式的 JSON 串,咱们想要的市值、排名等数据便藏在 result 那里接着,合作正则表达式对 response.text 的输出成果截取出方针数据# 接上\nimport re\ntext = response.text\nresult = re.search('"result":\\[(.*?)\\]', text).group(1)\ntemp = {}\nstock_info = re.findall('"market":"(.*?)",.*?"productA":"(.*?)",.*?"productName":"(.*?)",.*?"rank":(.*?)\\}', result, re.DOTALL)\n\n\nf = open(file_path + '/stock_history_market_value.csv', 'a+', newline = '')\nprint('正在写入:', trade_date)\nwriter = csv.DictWriter(f, ['year', 'trade_date', 'code', 'stock_name', 'market_value', 'rank'])\n\nfor info in stock_info:\n????temp = {\n????????"year": 2021,\n????????"trade_date": "2021-01-11",\n????????"code": info[1],\n????????"stock_name": info[2],\n????????"market_value": info[0],\n????????"rank": info[3]\n????}\n????print(temp)\n????writer.writerow(temp)\nprint('已完结', trade_date)\n
履行完结后就会发现程序目录多了一个文件 stock_history_market_value.csv因为动态排行图需求用到历年的数据,需求有必要将上面写入的 csv 的过程封装到 spider_market_value函数中,以便复用。考虑到数据量的问题,这儿只对历年(2000 年起)每个月的最终一天的数据进行抓取,别的,相同对该履行命令封装到函数中,便利传参履行。def get_monthly_market_value(year):\n# 假如参数是本年,则取本月前每个月取最终一天的市值排名,本月则取脚本时刻的前一天的市值排名\n????if year == datetime.date.today().year:\n????????this_month = datetime.date.today().month\n????????for month in range(1, this_month+1):\n????????????if month == datetime.date.today().month:\n????????????????trade_date = (datetime.date.today() - timedelta(days=1)).strftime('%Y-%m-%d')\n????????????????spider_market_value(year, trade_date)\n????????????else:\n????????????????trade_date = str(year) + '-' + str(month) + '-' + str(calendar.monthrange(year, month)[1])\n????????????????spider_market_value(year, trade_date)\n????# 假如参数为历年,则取每个月最终一天的市值排名\n????else:\n????for month in range(1, 13):????????trade_date = str(year) + '-' + str(month) + '-' + str(calendar.monthrange(year, month)[1])\n????????spider_market_value(year, trade_date)\n
给 get_monthly_market_value(year) 传入年份,便可抓取到对应年份每个月的数据,并汇总写入到 stock_history_market_value.csv 文件中。这样,数据部分就预备好了。绘图可视化在生成动态图之前,先查阅下所用的库与函数的用法,本文将以经典可视化库 matplotlib 里的 animation.FuncAnimation 为例,调用前需了解该办法的参数,以便承认下一步的预备工作。从官网文档能够检查到 animation.FuncAnimation 主要参数阐明:fig - 传入画布方针,能够经过 fig, ax = plt.subplots() 创立;func - 每一帧更新时所调用的(绘图)函数(如下方要新建的 draw_barchart() 函数)frames - func 函数的参数,作为帧序列,靠它图例才会动态改变\n# 给每一个股票随机一种色彩\nrandom.seed(444)\nget_colors = lambda n: list(map(lambda i:"#" +"%06x" % random.randint(0x111111, 0xffffff),range(n)))\ncolors = get_colors(df['code'].nunique())\n\ncodecolors = dict()\nuni_code = set(df['code'])\nfor code, color in zip(uni_code, colors):\ncodecolors[code] = color\n\n\ndef draw_barchart(trade_date):\n????plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']\n????plt.rcParams['animation.embed_limit'] = 2**128\n????\n????# 读取当天的数据\n????df_date = df[df['trade_date'] == trade_date]\n????df_date = df_date.sort_values(by = ['market_value'], ascending = True)\n????\n????# 每次制作前必须先清空画布,否则图画会堆叠的\n????ax.clear()\n????\n????# 制作水平柱状图\n???ax.barh(df_date['stock_name'].astype(str), df_date['market_value'], color = [codecolors[c] for c in df_date['code']])\n????\n????# 符号案牍\n????dx = df_date['market_value'].max()/200\n????for i, (value, code) in enumerate(zip(df_date['market_value'], df_date['stock_name'].astype(str))):\n???????ax.text(value-dx, i, code, size = 14, weight = 600, ha = 'right', va = 'bottom')\n????????ax.text(value+dx, i, f'{value:,.0f}', size = 14, ha = 'left', va = 'bottom')\n????\n????# 符号帧日期\n???ax.text(1, 0.45, trade_date.split('-')[0] + '-' + trade_date.split('-')[1], transform = ax.transAxes, color = '#777777', size = 46, ha = 'right')\n????\n????# 符号轴标签\n????ax.text(0, 1.06, "市值(万元)", transform = ax.transAxes, size = 12, color = '#777777')\n????\n????# 设置 X 轴坐标的方位为顶部\n????ax.xaxis.set_ticks_position('top')\n????\n????#设置 X 轴坐标的色彩和字体大小\n????ax.tick_params(axis = 'x', color = '#777777')\n????ax.xaxis.set_major_formatter(ticker.StrMethodFormatter('{x:,.0f}'))\n????\n????# 设置图形与边框的距离\n????ax.margins(0, 0.01)\n????ax.grid(which = 'major', axis = 'x', linestyle = '-')\n????ax.set_axisbelow(True)\n????\n????# 设置标题\n????ax.text(0.3, 1.05, '历年市值前10股票', transform = ax.transAxes, size = 48, weight = 600, ha = 'left')\n????\n????# 去掉边框\n????plt.box(False)\n\nfig, ax = plt.subplots(figsize=(22, 10))\nanimator = animation.FuncAnimation(fig, draw_barchart, frames = trade_date_list, interval = 125)\nHTML(animator.to_jshtml())\n
将 draw_barchart() 作为数据更新函数,月份作为 frames 帧序列,履行上面的句子,稍等片刻,文章最初的动态排行图便出来了:动画的流通程度除取决于 FuncAnimation 的 iterval 参数(用于设置换帧的时刻距离),也取决于每帧数据的距离,距离越小,按帧播映时就越顺滑,原理跟皮影戏相同,因而,假如要想取得更顺滑的动画,能够考虑下按日或按周抓取方针数据,当然届时要处理的数据量也就越大,运转时刻和功能问题也是需求考虑的点,咱们无妨多调试测验下。 推荐阅读
-
1美元等于多少港币 1万港币等于多少美元
1美元等於多少港幣1萬港幣等於多少美元1美元等於多少港幣是的,那麼1美元等於多少港幣呢?港幣可以在1港幣的基礎上增加幾分,即1港幣...
-
中化国际投资基金(股指期货模拟游戏)
A股正在演出回购潮。同花顺数据显现,到9月2日,今年以来,A股总计有600余家上市公司发布了与回购相关的公告。不过,上市公司将回购...
-
股指期货软件(证券底薪)商品力
股票出资是一种需求耐性和意志的出资方法,出资者需求有久远的出资眼光和正确的出资战略,才干在商场中取得长时刻的安稳报答。接下来,常识...
-
升达地板是众筹娶媳妇十大名牌吗—升达地板的优缺点
股票商场是一个充溢时机和危险的商场,出资者需求有正确的出资理念和危险意识,防止盲目跟风和过度自傲,防止形成不必要的丢失。接下来,常...
-
中式酒楼增加显著,澳门5月饮食及零售业景气度改大数据概念股票善
得悉,澳门计算暨普查局材料显现,在内地“五一”长假等要素带动下,5月份饮食业和零售业的体现较前一个月有所改善。有73%受访饮食业商...
-
600037股票深圳国际(00152)-联合置地以公开挂牌增资逾29亿元方式引入战略投资者
讯,深圳高速公路(00548)与深圳世界(00152)发布联合公告,深圳世界的直接隶属公司深圳市深世界联合置地有限公司现拟经过在深...
-
剪力墙是什么意思(剪力墙是建筑结构中的哪部分?)
什么是剪力墙?剪力墙是建筑结构中的一种构件,它是在建筑物的地基上至建筑顶部贯穿整座建筑物的墙体,用于抵抗水平荷载的作用。在建筑...
-
一般银行几点下班(股票日线怎么看)
一年每个月的指数求和再除以12,便是年指数,养老金缴费指数便是这样核算的。//@无忧仁者:基金指数的指数核算公式报告期基金的总市值...
-
炒股难度与资金量的关系(炒股打板与资金彼得林奇的成功投资的关系)
出资股市赚起钱来比房子更快,可是有钱人更热心出资房产,首要原因在这里!股市进入门槛低,**门槛高!只需去开个户,人人都能够炒股,可...
-
先息后本计算器(开盘啦炒股)
有个朋友最近买了几只基金,最近希财君的朋友很是不解,出资良久没看到赢利,后来他把这个细节给我讲了一遍,这才理解是什么原因。基金净值...