用Python爬取最新股票数据含完整源代码
抓取目标:
url:http://webapi.cninfo.com.cn/#/marketDataDate
数据目标: 获取 证券代码 证券简称 交易日期 开盘价 最高价 最低价 收盘价 成交数量
难点: 请求头参数mcode 加密生成
使用第三方库:

  1. requests

  2. execjs

  3. js2py

  4. math

  5. time

  6. pandas

工具:

  1. 谷歌浏览器
  2. pycharm
  3. python3.7
    爬取到的股票数据存入到code.xlsx,可设定需要爬取的时间范围

    完整代码
import requests
import execjs
import js2py
import math
import time
import pandas as pdcode_list = []def MCODE():jscode = '''function missjson(input) {  var keyStr = "ABCDEFGHIJKLMNOP" + "QRSTUVWXYZabcdef" + "ghijklmnopqrstuv"   + "wxyz0123456789+/" + "=";  var output = "";  var chr1, chr2, chr3 = "";  var enc1, enc2, enc3, enc4 = "";  var i = 0;  do {  chr1 = input.charCodeAt(i++);  chr2 = input.charCodeAt(i++);  chr3 = input.charCodeAt(i++);  enc1 = chr1 >> 2;  enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);  enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);  enc4 = chr3 & 63;  if (isNaN(chr2)) {  enc3 = enc4 = 64;  } else if (isNaN(chr3)) {  enc4 = 64;  }  output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2)  + keyStr.charAt(enc3) + keyStr.charAt(enc4);  chr1 = chr2 = chr3 = "";  enc1 = enc2 = enc3 = enc4 = "";  } while (i < input.length);  return output;  } '''time1 = js2py.eval_js('Math.floor(new Date().getTime()/1000)')# py方式a = math.floor(time.time() / 1000)mcode = execjs.compile(jscode).call('missjson', '{a}'.format(a=time1))return mcodedef PageRquest(datetime, mcode):# 接口可以换url = 'http://webapi.cninfo.com.cn/api/sysapi/p_sysapi1015'data = {'tdate': datetime,  # 获取数据时间'scode': '399001'  # 股票代码 以及交易所简称}headers = {'mcode': str(mcode),'Referer': 'http://webapi.cninfo.com.cn/','Cookie': 'Hm_lvt_489bd07e99fbfc5f12cbb4145adb0a9b=1634795282; Hm_lpvt_489bd07e99fbfc5f12cbb4145adb0a9b=1634799860','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'}response = requests.post(url, headers=headers, data=data).json()code = response['records']for i in code:code_list.append(i)def main(date):mcode = MCODE()PageRquest(date, mcode)if __name__ == '__main__':# main()# 数据分析 pandas 自动化办公的datetime = pd.period_range('2021/5/26', '2021/10/27', freq='B')for date in datetime:main(date)df = pd.DataFrame(code_list)print(df)df.to_excel('code.xlsx')

更多Python源代码,请微信关注:Python代码大全,

用Python爬取最新股票数据含完整源代码相关推荐

  1. Python应用实战-Python爬取4000+股票数据,并用plotly绘制了树状热力图(treemap)

    目录: 1. 准备工作 2. 开始绘图 2.1. 简单的例子 2.2. px.treemap常用参数介绍 2.3. color_continuous_scale参数介绍 2.4. 大A股市树状热力图来 ...

  2. Python爬取所有股票数据并进行数据分析

    一.背景:作为一个程序员,总喜欢在股市里面晃荡,无奈总是当成韭菜收割了.每一次都是卖涨买跌,处处碰壁.但是作为一个有一定阅历的程序员本能告诉自己,只要掌握了大量的股票数据,就可以在信息渠道落后的情况下 ...

  3. Python爬取热搜数据之炫酷可视化

    可视化展示 看完记得点个赞哟 炫酷可视化音乐组合版来了! 项目介绍 背景 现阶段.抖音.快手.哗哩哗哩.微信公众号已经成为不少年轻人必备的"生活神器".在21世纪的今天,你又是如何 ...

  4. 利用python爬取2019-nCoV确诊数据并制作pyecharts可视化地图

    1.本章利用python爬取2019-nCoV确诊数据并制作pyecharts可视化地图: 2.主要内容为绘制出中国各省疫情数据,疫情数据从四个维度进行可视化展示:累积确诊人数.现存确诊人数.治愈人数 ...

  5. python爬去朋友圈_利用Python爬取朋友圈数据,爬到你开始怀疑人生

    人生最难的事是自我认知,用Python爬取朋友圈数据,让我们重新审视自己,审视我们周围的圈子. 文:朱元禄(@数据分析-jacky) 哲学的两大问题:1.我是谁?2.我们从哪里来? 本文 jacky试 ...

  6. python 爬取拉钩数据

    Python通过Request库爬取拉钩数据 爬取方法 数据页面 建表存储职位信息 解析页面核心代码 完整代码 结果展示 爬取方法 采用python爬取拉钩数据,有很多方法可以爬取,我采用的是通过Re ...

  7. python 爬取拉钩网数据

    python 爬取拉钩网数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/blob/master/lagou/LaGouSpider.py # ...

  8. 利用Python爬取国家水稻数据中心的品种数据

    利用Python爬取国家水稻数据中心的品种数据 一.页面获取 python可以进行对网页的访问,主要用到requests,beautifulsoup4包. 首先新建一个page的py文件,用来获取页面 ...

  9. 利用Python爬取朋友圈数据,爬到你开始怀疑人生

    人生最难的事是自我认知,用Python爬取朋友圈数据,让我们重新审视自己,审视我们周围的圈子. 文:朱元禄(@数据分析-jacky) 哲学的两大问题:1.我是谁?2.我们从哪里来? 本文 jacky试 ...

最新文章

  1. VS2015 win64下配置Opencv3.4.7
  2. Semplice Linux 3.0.0 发布
  3. 让浏览器判断html为手机页面,判断是从手机端还是客户端访问的页面,判断浏览器类型...
  4. python 语言, 详解fromstring 函数 -------------从字符串到Ascii 码的转换
  5. 普林斯顿大学计算机科学与技术专业硕士项目拒信
  6. 使用Xcode 4编译器设定Release/Debug教程
  7. 资料分享 | python机器学习教程分享来袭
  8. 课时3.浏览器访问网页原理(理解)
  9. HTML5 API详解(17):Web SQL DataBase本地数据库
  10. centos65编译安装lamp和lnmp
  11. android+坐标类,Android Path和PathMeasure类的使用之获取圆弧上的坐标值
  12. C 语言指针与汇编地址(一)
  13. python编程语言继承_如何使用Python继承机制(子类化内置类型)
  14. mybatis3文档
  15. 如何将c语言编译成动态链接库,将C语言源代码编译成动态链接库
  16. LwM2M(轻量级M2M)协议
  17. 企业中常用的vlan划分方法
  18. SLAM建图精度评估 by EVO
  19. 接入Paypal 实现跨境支付 - springboot实战电商项目mall4j
  20. 2017-06-15 前端日报

热门文章

  1. 工业通讯 | CAN基础内容详解(二)——物理层
  2. android edittext自动获取焦点,Android取消EditText自动获取默认焦点
  3. 如何解决劳务派遣过程中出现劳动关系争议问题?
  4. 你的成功在于你每天养成的习惯
  5. git commit 报错fatal: unable to access
  6. java“/”除号意思是:取整 并不会出现小数
  7. 初中几何辅助线口诀(含经典题解析)
  8. this关键字 就近原则 构造方法
  9. 英文论文中 i.e. e.g. etc. 各是什么意思?
  10. 从键盘输入一个数n,判断是不是一个质数(质数是只能被1和它自身整除的数)。