public function stock(){
$curl = new Curl();
$curl->setUserAgent('Mozilla/5.0');
$curl->get('http://stock.gtimg.cn/data/get_hs_xls.php?id=ranka&type=1&metric=chr');
$file_name = date('Ymd').'.xls';
$dataSet = '';
if ($curl->error) {
echo $curl->error_code;
}
else {
file_put_contents($file_name, $curl->response);
//echo $curl->response;
$objPHPExcel = \PHPExcel_IOFactory::load($file_name);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
$objdata = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$date = date('Y-m-d',strtotime(date('Y',time()).'-'.$objdata['1']['B']));
foreach ($objdata as $k=>$v){
if($k>2){
$dataSet[]=array(
'dm'=>$v['A'],
'name'=>$v['B'],
'zxj' =>$v['C'],
'zdf' =>str_replace('%', '', $v['D']),
'zde' =>$v['E'],
'cjl' =>$v['H'],
'cje' =>$v['I'],
'jk' =>$v['J'],
'zs' =>$v['K'],
'zg' =>$v['L'],
'zd' =>$v['M'],
'data_time'=>$date,
'ctime'=>date('Y-m-d H:i:s',time()),
);
}
}
}
if($dataSet) {
db('record')->where('data_time',$date)->delete();
db('record')->insertAll($dataSet);
echo 'success';
}else{
echo 'false';
}
$curl->close(); }

composer

{
"require": {
"php": ">=5.4.0",
"topthink/framework": "^5.0",
"phpoffice/phpexcel": "^1.0",
"curl/curl": "^1.0"
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}

  

CREATE TABLE `record` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`dm` varchar(64) DEFAULT NULL COMMENT '代码',
`name` varchar(64) DEFAULT NULL COMMENT '名称',
`zxj` decimal(10,2) DEFAULT NULL COMMENT '最新价',
`zdf` decimal(10,2) DEFAULT NULL COMMENT '涨跌幅',
`zde` decimal(10,2) DEFAULT NULL COMMENT '涨跌额',
`cjl` double(20,0) DEFAULT NULL COMMENT '成交量',
`cje` decimal(20,2) DEFAULT NULL COMMENT '成交额',
`jk` decimal(10,2) DEFAULT NULL COMMENT '今开',
`zs` decimal(10,2) DEFAULT NULL COMMENT '昨收',
`zg` decimal(10,2) DEFAULT NULL COMMENT '最高',
`zd` decimal(10,2) DEFAULT NULL COMMENT '最低',
`data_time` datetime DEFAULT NULL COMMENT '交易日期',
`ctime` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4096 DEFAULT CHARSET=utf8;

  

db类https://packagist.org/packages/joshcam/mysqli-database-class

php抓取股票数据的更多相关文章

  1. 一个极其简洁的Python网页抓取程序,自己主动从雅虎財经抓取股票数据

    本程序使用Python 2.7.6编写,扩展了Python自带的HTMLParser,自己主动依据预设的股票代码列表,从Yahoo Finance抓取列表中的数据日期.股票名称.实时报价.当日变化率. ...

  2. 写一个shell脚本利用wget抓取股票历史数据

    今天,大数据部老大交给我一项任务——抓取股票历史数据.于是乎,我自行在网上找了一下,发现wget真真是一个非常强大的linux下载工具.我已经被深深震撼到了.下面叙述今天的一些过程,还是比较坎坷的. ...

  3. Scrapy 抓取股票行情

    安装scrapy会出现错误,我们选择anaconda3作为编译环境,搜索scrapy安装(有错误自查) 创建scrapy爬虫项目: 调出cmd,到相应目录:输入: scrapy startprojec ...

  4. MATLAB爬虫爬取股票数据

    近年来,大数据盛行,有关爬虫的教程层次不穷.那么,爬虫到底是什么呢? 什么是爬虫? 百度百科是这样定义的: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种 ...

  5. 吴裕雄--天生自然PYTHON爬虫:使用Scrapy抓取股票行情

    Scrapy框架它能够帮助提升爬虫的效率,从而更好地实现爬虫.Scrapy是一个为了抓取网页数据.提取结构性数据而编写的应用框架,该框架是封装的,包含request异步调度和处理.下载器(多线程的Do ...

  6. Charles 如何抓取https数据包

    Charles可以正常抓取http数据包,但是如果没有经过进一步设置的话,无法正常抓取https的数据包,通常会出现乱码.举个例子,如果没有做更多设置,Charles抓取https://www.bai ...

  7. 手把手教你用python打造网易公开课视频下载软件3-对抓取的数据进行处理

    上篇讲到抓取的数据保存到rawhtml变量中,然后通过编码最终保存到html变量当中,那么html变量还会有什么问题吗?当然会有了,例如可能html变量中的保存的抓取的页面源代码可能有些标签没有关闭标 ...

  8. iOS开发——网络实用技术OC篇&网络爬虫-使用青花瓷抓取网络数据

    网络爬虫-使用青花瓷抓取网络数据 由于最近在研究网络爬虫相关技术,刚好看到一篇的的搬了过来! 望谅解..... 写本文的契机主要是前段时间有次用青花瓷抓包有一步忘了,在网上查了半天也没找到写的完整的教 ...

  9. iOS开发——网络使用技术OC篇&网络爬虫-使用正则表达式抓取网络数据

    网络爬虫-使用正则表达式抓取网络数据 关于网络数据抓取不仅仅在iOS开发中有,其他开发中也有,也叫网络爬虫,大致分为两种方式实现 1:正则表达 2:利用其他语言的工具包:java/Python 先来看 ...

随机推荐

  1. 《算法导论》——MaximumSubArray

    今天我们讨论的算法是最大子数组问题. 首先我定义了一个类用来保存最大子数组的开始位置索引.结束位置索引和该数组的和.代码如下: class MaximumSubArray { private: int ...

  2. python中的format

    format()格式化字符串,将占位符替换成内容,举个例子: 1 a = "hello {0} welcome to {1}" 2 a1 = a.format("dlrb ...

  3. 1.maven中pom.xml文件中<exclusions>标签认不到问题

    问题描述:

  4. UEditor 在ie中报console未定义解决方案

    解决办法:                  1.注释掉该代码               2.或者加入如下代码即可,本人已经测试过,没有问题. window.console = window.con ...

  5. 利用STM32CubeMX来生成USB_HID_host工程

    修改时钟(备注这边使用25mhz的主晶振) 选择debug_level等级为3

  6. 深度学习原理与框架-神经网络架构 1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差) 4.dropout(防止过拟合操作)

    神经网络构架:主要时表示神经网络的组成,即中间隐藏层的结构 对图片进行说明:我们可以看出图中的层数分布: input layer表示输入层,维度(N_num, input_dim)  N_num表示输 ...

  7. cookies_ajax

    views def test_user(request): print('start') if request.method=='POST': print('goon_test_user') user ...

  8. Excel快捷生成想要的xml或text

    1.新建一个xml格式的A.xml文本,里面有4条以上的内容,注意哦,里面的元素与Excel里面的标题列数是一直的,不然会少了对应的某列数据.如: 2.打开Excel——>新建一个sheetl— ...

  9. Oracle 学习总结 - 物理结构

    参考了很多文章,学习自网络 数据库 = 实例(数据库启动时初始的进程和内存结构,进程会作用到对应的内存区域-数据写入器到写入内存缓冲区,日志写入器到日志缓冲区等) + 数据库(物理文件-控制文件,数据 ...

  10. 1.ECS(CentOS7)主机名修改命令

    命令:hostnamectl 使用--help参数查看hostnamectl里面每个参数对应的含义: [root@localhost ~]# hostnamectl --help Query or c ...