php抓取股票数据
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抓取股票数据的更多相关文章
- 一个极其简洁的Python网页抓取程序,自己主动从雅虎財经抓取股票数据
本程序使用Python 2.7.6编写,扩展了Python自带的HTMLParser,自己主动依据预设的股票代码列表,从Yahoo Finance抓取列表中的数据日期.股票名称.实时报价.当日变化率. ...
- 写一个shell脚本利用wget抓取股票历史数据
今天,大数据部老大交给我一项任务——抓取股票历史数据.于是乎,我自行在网上找了一下,发现wget真真是一个非常强大的linux下载工具.我已经被深深震撼到了.下面叙述今天的一些过程,还是比较坎坷的. ...
- Scrapy 抓取股票行情
安装scrapy会出现错误,我们选择anaconda3作为编译环境,搜索scrapy安装(有错误自查) 创建scrapy爬虫项目: 调出cmd,到相应目录:输入: scrapy startprojec ...
- MATLAB爬虫爬取股票数据
近年来,大数据盛行,有关爬虫的教程层次不穷.那么,爬虫到底是什么呢? 什么是爬虫? 百度百科是这样定义的: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种 ...
- 吴裕雄--天生自然PYTHON爬虫:使用Scrapy抓取股票行情
Scrapy框架它能够帮助提升爬虫的效率,从而更好地实现爬虫.Scrapy是一个为了抓取网页数据.提取结构性数据而编写的应用框架,该框架是封装的,包含request异步调度和处理.下载器(多线程的Do ...
- Charles 如何抓取https数据包
Charles可以正常抓取http数据包,但是如果没有经过进一步设置的话,无法正常抓取https的数据包,通常会出现乱码.举个例子,如果没有做更多设置,Charles抓取https://www.bai ...
- 手把手教你用python打造网易公开课视频下载软件3-对抓取的数据进行处理
上篇讲到抓取的数据保存到rawhtml变量中,然后通过编码最终保存到html变量当中,那么html变量还会有什么问题吗?当然会有了,例如可能html变量中的保存的抓取的页面源代码可能有些标签没有关闭标 ...
- iOS开发——网络实用技术OC篇&网络爬虫-使用青花瓷抓取网络数据
网络爬虫-使用青花瓷抓取网络数据 由于最近在研究网络爬虫相关技术,刚好看到一篇的的搬了过来! 望谅解..... 写本文的契机主要是前段时间有次用青花瓷抓包有一步忘了,在网上查了半天也没找到写的完整的教 ...
- iOS开发——网络使用技术OC篇&网络爬虫-使用正则表达式抓取网络数据
网络爬虫-使用正则表达式抓取网络数据 关于网络数据抓取不仅仅在iOS开发中有,其他开发中也有,也叫网络爬虫,大致分为两种方式实现 1:正则表达 2:利用其他语言的工具包:java/Python 先来看 ...
随机推荐
- 《算法导论》——MaximumSubArray
今天我们讨论的算法是最大子数组问题. 首先我定义了一个类用来保存最大子数组的开始位置索引.结束位置索引和该数组的和.代码如下: class MaximumSubArray { private: int ...
- python中的format
format()格式化字符串,将占位符替换成内容,举个例子: 1 a = "hello {0} welcome to {1}" 2 a1 = a.format("dlrb ...
- 1.maven中pom.xml文件中<exclusions>标签认不到问题
问题描述:
- UEditor 在ie中报console未定义解决方案
解决办法: 1.注释掉该代码 2.或者加入如下代码即可,本人已经测试过,没有问题. window.console = window.con ...
- 利用STM32CubeMX来生成USB_HID_host工程
修改时钟(备注这边使用25mhz的主晶振) 选择debug_level等级为3
- 深度学习原理与框架-神经网络架构 1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差) 4.dropout(防止过拟合操作)
神经网络构架:主要时表示神经网络的组成,即中间隐藏层的结构 对图片进行说明:我们可以看出图中的层数分布: input layer表示输入层,维度(N_num, input_dim) N_num表示输 ...
- cookies_ajax
views def test_user(request): print('start') if request.method=='POST': print('goon_test_user') user ...
- Excel快捷生成想要的xml或text
1.新建一个xml格式的A.xml文本,里面有4条以上的内容,注意哦,里面的元素与Excel里面的标题列数是一直的,不然会少了对应的某列数据.如: 2.打开Excel——>新建一个sheetl— ...
- Oracle 学习总结 - 物理结构
参考了很多文章,学习自网络 数据库 = 实例(数据库启动时初始的进程和内存结构,进程会作用到对应的内存区域-数据写入器到写入内存缓冲区,日志写入器到日志缓冲区等) + 数据库(物理文件-控制文件,数据 ...
- 1.ECS(CentOS7)主机名修改命令
命令:hostnamectl 使用--help参数查看hostnamectl里面每个参数对应的含义: [root@localhost ~]# hostnamectl --help Query or c ...