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. spark 运行架构

    spark 运行架构基本由三部分组成,包括SparkContext(驱动程序),ClusterManager(集群资源管理器)和Executor(任务执行过程)组成. 其中SparkContext负责 ...

  2. PHP企业微信配置点击事件。

    1. 2. 3.URL接受值进行签名验证. <?phpinclude_once "../commmm/WXBizMsgCrypt.php";/*微信提供 demo*/// 假 ...

  3. Flex学习笔记-使用MXML和一个AS事件监听器监听事件

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  4. C# 如何利用反射,将字符串转化为类名并调用类中方法

    首先,先随便创建一个测试类 <span style="font-family:Microsoft YaHei;font-size:18px;">public class ...

  5. 2018SDIBT_国庆个人第一场

    A - Turn the Rectangles CodeForces - 1008B There are nn rectangles in a row. You can either turn eac ...

  6. Jenkins:管理节点

    Jenkins 管理节点 是管理所有即将在其上执行任务(JOB)的slave机器,包括各种OS类型的主机,都可以作为节点,因为Jenkins是java实现的,所以能安装JVM的OS都可以作为Jenki ...

  7. linux下svn不能连接上windows服务器:SSL handshake failed: SSL error

    在linux服务器下载https链接的svn源码时出现:SSL handshake failed: SSL error: Key usage violation in certificate has ...

  8. debian下redis2.8.17安装过程

    下载redis源码包,我下载的是redis2.8.17 解压缩该源码包 tar zxf redis-2.8.17.tar.gz 进入解压缩后的目录 cd redis-2.8.17/ 添加redis用户 ...

  9. HttpURLConnection类的使用

    此类以获取天气的一个api地址为例: package javaexcjs; import java.io.BufferedReader; import java.io.OutputStreamWrit ...

  10. js实现刷新页面出现随机背景图

    直接上代码: <script>         var bodyBgs = [];         bodyBgs[0] = "IMG/01.jpg";         ...