欢迎来到福编程网,本站提供各种互联网专业知识!

利用PHP命令行模式采集股票趋势信息

发布时间:2016-08-09 作者:投稿daisy 来源:转载
本文介绍的是一个简单的股票采集工具,采集的同花顺股票趋势信息,使用php命令行模式编写。只完成了采集部分功能,将输出的数据复制到execl(或ET)分析,比任何后台都方便。下面一起来学习学习。

话不多说,下面直接来看实现代码。

主要函数只有一个类实现(stock.class.php):

<?php
 class StockClass{
 public $stockId;
 
 public function __construct($stockId){
  $this -> stockId = $stockId;
 }
 
 private function getUrl(){
  return "http://stockpage.10jqka.com.cn/" . $this -> stockId . "/";
 }
 
 private function getPage(){
  return file_get_contents($this -> getUrl());
 }
 
 //核心,通过正则匹配出 标签名,并将对应的方法的结果替换掉标签占位符
 public function getInfo($template){
  $html = $this -> getPage();
  if( preg_match_all("/{([^}]*)}/", $template, $result) ){
  foreach($result[1] as $index => $fun){
   $template = str_replace($result[0][$index], $this -> $fun($html), $template);
  }
  }
  return mb_convert_encoding($template, "GBK", "UTF-8"); //Windows的命令提示符编码是GBK
 }
 
 private function match($pattern, $html, $itemIndex = 1){
  $pattern = '/' . str_replace('/', '/', $pattern) . '/';
  if( preg_match($pattern, $html, $result) ){
  return $result[$itemIndex];
  }else{
  return "-";
  }
 }
 
 //趋势的规则都一样,合并
 private function qushiPattern($name){
  return '
' . $name . ':
s*
([^<]*)
'; } //支持的标签 private function name($html){ return $this -> match("([^(<]*)(", $html, 1); } private function score($html){ return $this -> match('<span class="analyze-num">(d+(.d+)?)</span>', $html); } private function tips($html){ return $this -> match('<span class="analyze-tips">([^<]*)</span>', $html); } private function qushishort($html){ return $this -> match($this -> qushiPattern("短期趋势"), $html); } private function qushimiddle($html){ return $this -> match($this -> qushiPattern("中期趋势"), $html); } private function qushilong($html){ return $this -> match($this -> qushiPattern("长期趋势"), $html); } } ?></pre> <p><strong>命令提示符中的调用方法如下(stock.php):</strong></p> <pre class="brush:php;"> <?php if(count($argv) >= 2){ require("stock.class.php"); $stockId = $argv[1]; $stock = new StockClass($stockId); $temp = $stockId; $temp .= " {name}"; //名称 $temp .= " {score}"; //评分 $temp .= " {tips}"; //描述 $temp .= " {qushishort}"; //短期趋势 $temp .= " {qushimiddle}"; //中期趋势 $temp .= " {qushilong}"; //长期趋势 //$temp .= " {zidingyi}"; //自定义,直接在StockClass增加zidingyi方法即可 $temp .= "n"; echo $stock -> getInfo($temp); } ?></pre> <p>直接使用<code> *php.exe stock.php </code>股票代码即可实现调用,每次输入太长的,可以用批处理简化。</p> <p>将下面的代码保存为 stock.cmd。</p> <pre class="brush:xhtml;"> @XXXphp.exe stock.php %1</pre> <p><strong>运行结果:</strong></p> <p style="text-align: center"><strong><img alt="" src="http://files.jb51.net/file_images/article/201608/20168991224293.png?20167991235" /></strong></p> <p>这样就完成了单个股票趋势的采集,如果要采集所有的股票信息,可以保存为批处理文件(batch.cmd)</p> <pre class="brush:xhtml;"> @echo off call stock 000001 call stock 000002 call stock 000003 call stock 000004 call stock 000005 call stock 000006 call stock 000007 call stock 股票代码n...</pre> <p>双击打开即可显示,如果想保存到文件,可以执行 <code>batch.cmd > log.txt</code>,然后将结果复制到 Execl(或ET)即可进行更负责的分析。</p> <p style="text-align: center"><img alt="" src="http://files.jb51.net/file_images/article/201608/20168991337862.png?20167991347" /></p> <p>以上就是利用PHP命令行模式采集股票趋势信息的全部内容,这个功能很方便实用,感兴趣的朋友们快快实践起来吧。</p></div> <div class="prev-next"> <div class="prev">上一篇:<a href="/php/example/item-19233.html">学习PHP Cookie处理函数</a></div><div class="next">下一篇:<a href="/php/example/item-19229.html">php+jQuery+Ajax简单实现页面异步刷新</a></div> </div> </div> <!--广告 start--> <div class="qf-ads"><ul class="qf-ads-nUl-12"><li><a href="" target="_blank"><img src="/uploads/images/ads/202306/20230610084915300842.jpg"></a><a href="" target="_blank" class="alink"><label>广告</label><span>商业广告,理性选择</span></a></li></ul></div> <div class="qf-article-container"> <div class="qf-cms-name"> <h3>相关推荐</h3> </div> <div class="qf-cms-container"> <ul class="article-list-relationship"> <li><a href="/php/example/item-19251.html" title="PHP命令行执行整合pathinfo模拟定时任务实例" target="_blank">PHP命令行执行整合pathinfo模拟定时任务实例</a> </li> <li><a href="/php/example/item-19252.html" title="PHP url的pathinfo模式加载不同控制器的简单实现" target="_blank">PHP url的pathinfo模式加载不同控制器的简单实现</a> </li> <li><a href="/php/example/item-19253.html" title="py文件转exe时包含paramiko模块出错解决方法" target="_blank">py文件转exe时包含paramiko模块出错解决方法</a> </li> <li><a href="/php/example/item-19254.html" title="PHP 自动加载的简单实现(推荐)" target="_blank">PHP 自动加载的简单实现(推荐)</a> </li> <li><a href="/php/example/item-19255.html" title="php网页版聊天软件实现代码" target="_blank">php网页版聊天软件实现代码</a> </li> <li><a href="/php/example/item-19256.html" title="php+jquery+html实现点击不刷新加载更多的实例代码" target="_blank">php+jquery+html实现点击不刷新加载更多的实例代码</a> </li> <li><a href="/php/example/item-19257.html" title="PHP请求Socket接口测试实例" target="_blank">PHP请求Socket接口测试实例</a> </li> <li><a href="/php/example/item-19258.html" title="PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题" target="_blank">PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题</a> </li> <li><a href="/php/example/item-19259.html" title="PHP 读取大文件并显示的简单实例(推荐)" target="_blank">PHP 读取大文件并显示的简单实例(推荐)</a> </li> <li><a href="/php/example/item-19260.html" title="PHP Oauth授权和本地加密实现方法" target="_blank">PHP Oauth授权和本地加密实现方法</a> </li> <li><a href="/php/example/item-19261.html" title="Yii2.0中的COOKIE和SESSION用法" target="_blank">Yii2.0中的COOKIE和SESSION用法</a> </li> <li><a href="/php/example/item-19247.html" title="PHP实现四种基础排序算法的运行时间比较(推荐)" target="_blank">PHP实现四种基础排序算法的运行时间比较(推荐)</a> </li> <li><a href="/php/example/item-19236.html" title="PHP身份证校验码计算方法" target="_blank">PHP身份证校验码计算方法</a> </li> <li><a href="/php/example/item-19237.html" title="PHP通过加锁实现并发情况下抢码功能" target="_blank">PHP通过加锁实现并发情况下抢码功能</a> </li> <li><a href="/php/example/item-19239.html" title="Yii2的XSS攻击防范策略分析" target="_blank">Yii2的XSS攻击防范策略分析</a> </li> <li><a href="/php/example/item-19240.html" title="Yii2基于Ajax自动获取表单数据的方法" target="_blank">Yii2基于Ajax自动获取表单数据的方法</a> </li> <li><a href="/php/example/item-19241.html" title="Yii2实现上下联动下拉框功能的方法" target="_blank">Yii2实现上下联动下拉框功能的方法</a> </li> <li><a href="/php/example/item-19242.html" title="Yii2实现同时搜索多个字段的方法" target="_blank">Yii2实现同时搜索多个字段的方法</a> </li> <li><a href="/php/example/item-19243.html" title="Yii2实现让关联字段支持搜索功能的方法" target="_blank">Yii2实现让关联字段支持搜索功能的方法</a> </li> <li><a href="/php/example/item-19244.html" title="Yii2中关联查询简单用法示例" target="_blank">Yii2中关联查询简单用法示例</a> </li> </ul> </div> </div> </div> <div class="sidebar"> <!--广告 start--> <div class="qf-ads"><ul class="qf-ads-nUl-9"><li><a href="https://www.aliyun.com/activity/new/index?userCode=6qkxlezw" target="_blank"><img src="/uploads/images/ads/202306/20230609231605989299.jpg"></a><a href="https://www.aliyun.com/activity/new/index?userCode=6qkxlezw" target="_blank" class="alink"><label>广告</label><span>商业广告,理性选择</span></a></li></ul></div> <div class="qf-cms-name"> <h3>文章分类</h3> </div> <div class="qf-cms-container"> <div class="qf-category-list"> <a href="/php/basic/index.html" title="php基础" target="_blank">php基础</a> <a href="/php/skill/index.html" title="php技巧" target="_blank">php技巧</a> <a href="/php/example/index.html" title="php实例" target="_blank">php实例</a> <a href="/php/article/index.html" title="php文摘" target="_blank">php文摘</a> <a href="/php/template/index.html" title="php模板" target="_blank">php模板</a> </div> </div> <div class="qf-cms-name"> <h3>热门关键词</h3> </div> <div class="qf-cms-container"> <div class="qf-tag-list"> <a href="https://zhannei.baidu.com/cse/site?q=雪佛兰&cc=fuphp.cn&ie=utf-8" title="雪佛兰" target="_blank">雪佛兰</a> <a href="https://zhannei.baidu.com/cse/site?q=通用&cc=fuphp.cn&ie=utf-8" title="通用" target="_blank">通用</a> <a href="https://zhannei.baidu.com/cse/site?q=奢华&cc=fuphp.cn&ie=utf-8" title="奢华" target="_blank">奢华</a> <a href="https://zhannei.baidu.com/cse/site?q=劳斯莱斯&cc=fuphp.cn&ie=utf-8" title="劳斯莱斯" target="_blank">劳斯莱斯</a> <a href="https://zhannei.baidu.com/cse/site?q=旗舰版&cc=fuphp.cn&ie=utf-8" title="旗舰版" target="_blank">旗舰版</a> <a href="https://zhannei.baidu.com/cse/site?q=64位&cc=fuphp.cn&ie=utf-8" title="64位" target="_blank">64位</a> <a href="https://zhannei.baidu.com/cse/site?q=收藏夹&cc=fuphp.cn&ie=utf-8" title="收藏夹" target="_blank">收藏夹</a> <a href="https://zhannei.baidu.com/cse/site?q=解调器&cc=fuphp.cn&ie=utf-8" title="解调器" target="_blank">解调器</a> <a href="https://zhannei.baidu.com/cse/site?q=网卡&cc=fuphp.cn&ie=utf-8" title="网卡" target="_blank">网卡</a> <a href="https://zhannei.baidu.com/cse/site?q=网线&cc=fuphp.cn&ie=utf-8" title="网线" target="_blank">网线</a> <a href="https://zhannei.baidu.com/cse/site?q=分辨率&cc=fuphp.cn&ie=utf-8" title="分辨率" target="_blank">分辨率</a> <a href="https://zhannei.baidu.com/cse/site?q=家电&cc=fuphp.cn&ie=utf-8" title="家电" target="_blank">家电</a> <a href="https://zhannei.baidu.com/cse/site?q=4k&cc=fuphp.cn&ie=utf-8" title="4k" target="_blank">4k</a> <a href="https://zhannei.baidu.com/cse/site?q=显示器&cc=fuphp.cn&ie=utf-8" title="显示器" target="_blank">显示器</a> <a href="https://zhannei.baidu.com/cse/site?q=header&cc=fuphp.cn&ie=utf-8" title="header" target="_blank">header</a> <a href="https://zhannei.baidu.com/cse/site?q=USER_AGENT&cc=fuphp.cn&ie=utf-8" title="USER_AGENT" target="_blank">USER_AGENT</a> <a href="https://zhannei.baidu.com/cse/site?q=色彩&cc=fuphp.cn&ie=utf-8" title="色彩" target="_blank">色彩</a> <a href="https://zhannei.baidu.com/cse/site?q=图形&cc=fuphp.cn&ie=utf-8" title="图形" target="_blank">图形</a> <a href="https://zhannei.baidu.com/cse/site?q=商业&cc=fuphp.cn&ie=utf-8" title="商业" target="_blank">商业</a> <a href="https://zhannei.baidu.com/cse/site?q=生成&cc=fuphp.cn&ie=utf-8" title="生成" target="_blank">生成</a> </div> </div> <!--广告 start--> <div class="qf-ads"><ul class="qf-ads-nUl-10"><li><a href="https://www.aliyun.com/activity/new/index?userCode=6qkxlezw" target="_blank"><img src="/uploads/images/ads/202306/20230609231537994005.jpg"></a><a href="https://www.aliyun.com/activity/new/index?userCode=6qkxlezw" target="_blank" class="alink"><label>广告</label><span>商业广告,理性选择</span></a></li></ul></div> <div class="qf-cms-name"> <h3>热门文章</h3> </div> <div class="qf-cms-container"> <ul class="qf-article-list"> <li><em>1</em> <a href="/cehua/item-29482.html" title="什么是Meta标签? 哪些Meta标签对搜索引擎SEO优化有作用?" target="_blank">什么是Meta标签? 哪些Meta标签对搜索引擎SEO优化有作用?</a> </li> <li><em>2</em> <a href="/mac/item-22368.html" title="Mac设置VPN来登录youtube等国外网站的步骤" target="_blank">Mac设置VPN来登录youtube等国外网站的步骤</a> </li> <li><em>3</em> <a href="/jingyan/item-20869.html" title="各大搜索引擎登录入口,网站收录入口" target="_blank">各大搜索引擎登录入口,网站收录入口</a> </li> <li><em>4</em> <a href="/qilin/item-30816.html" title="Openvpn在麒麟操作系统上的配置方法" target="_blank">Openvpn在麒麟操作系统上的配置方法</a> </li> <li><em>5</em> <a href="/bios/item-23598.html" title="联想笔记本BIOS设置图解中文详细说明" target="_blank">联想笔记本BIOS设置图解中文详细说明</a> </li> <li><em>6</em> <a href="/bios/item-27940.html" title="AMI BIOS设置图解教程+Award Bios设置全程图解" target="_blank">AMI BIOS设置图解教程+Award Bios设置全程图解</a> </li> <li><em>7</em> <a href="/mac/item-23040.html" title="Mac怎么切换主显示器 苹果电脑Mac双显示器设置主显方法图解" target="_blank">Mac怎么切换主显示器 苹果电脑Mac双显示器设置主显方法图解</a> </li> <li><em>8</em> <a href="/yunying/other/item-29261.html" title="分享最受美国人喜欢的十大搜索引擎" target="_blank">分享最受美国人喜欢的十大搜索引擎</a> </li> <li><em>9</em> <a href="/tools/item-30528.html" title="分享10个常见的SQL注入工具" target="_blank">分享10个常见的SQL注入工具</a> </li> <li><em>10</em> <a href="/mac/item-23628.html" title="mac系统中自带的邮件程序怎么添加qq邮箱帐号?" target="_blank">mac系统中自带的邮件程序怎么添加qq邮箱帐号?</a> </li> </ul> </div> <div class="qf-cms-name"> <h3>最新更新</h3> </div> <div class="qf-cms-container"> <ul class="qf-article-list"> <li><a href="/changshi/item-79334.html" title="无线路由器经常断线 故障解决" target="_blank">无线路由器经常断线 故障解决</a> </li> <li><a href="/changshi/item-79351.html" title="怎么在Mac上设置锁屏不待机" target="_blank">怎么在Mac上设置锁屏不待机</a> </li> <li><a href="/changshi/item-79354.html" title="VHD和VHDX硬盘格式有什么区别?" target="_blank">VHD和VHDX硬盘格式有什么区别?</a> </li> <li><a href="/changshi/item-79363.html" title="关闭Aero Shake节约系统资源的方法" target="_blank">关闭Aero Shake节约系统资源的方法</a> </li> <li><a href="/changshi/item-79362.html" title="怎么更改Mac中的邮件字体大小" target="_blank">怎么更改Mac中的邮件字体大小</a> </li> <li><a href="/changshi/item-79371.html" title="提高WIN7系统开机速度方法分享" target="_blank">提高WIN7系统开机速度方法分享</a> </li> <li><a href="/changshi/item-79361.html" title="Mac系统怎么更改用户登录密码" target="_blank">Mac系统怎么更改用户登录密码</a> </li> <li><a href="/changshi/item-79358.html" title="Mac上如何修改时间和日期" target="_blank">Mac上如何修改时间和日期</a> </li> <li><a href="/changshi/item-79366.html" title="如何将常用应用固定至开始屏幕或任务栏" target="_blank">如何将常用应用固定至开始屏幕或任务栏</a> </li> <li><a href="/mysql/item-79372.html" title="MySQL中replace into语句的用法详解(insert into 的增强版)" target="_blank">MySQL中replace into语句的用法详解(insert into 的增强版)</a> </li> </ul> </div> <!--广告 start--> <div class="qf-ads qf-ads-ontop"><ul class="qf-ads-nUl-11"><li><a href="http://www.hnqfu.cn" target="_blank"><img src="/uploads/images/ads/202306/20230610081510415263.jpg"></a><a href="http://www.hnqfu.cn" target="_blank" class="alink"><label>广告</label><span>商业广告,理性选择</span></a></li></ul></div> </div> </div> </div> <script type="text/javascript"> var scrollPh = 1680; layui.use('code', function(){ layui.code({ elem: 'pre', title: '代码', encode: false, ln: true, //skin: 'dark', //about: '123', about: [ //'<a href="javascript:;">复制</a>' ] }); }); </script> <div class="wrap bottom"> <div class="wrapper clearfix"> <div class="links"> <a href="http://www.fuphp.cn">网站首页</a>  | <a href="/aboutus.html">关于我们</a>  | <a href="/wangzhanshengming.html">免责声明</a>  | <a href="/guanggaohezuo.html">广告合作</a>  | <a href="/contact.html">联系我们</a> </div> <div class="copyright"> Copyright @ 2015-2024 <a href="" title="河南全福网络科技有限公司专业网制设计制作,PHP二次开发">福编程 fuphp</a> All Rights Reserved. </div> <div class="copyright"> <a href="http://beian.miit.gov.cn" target="_blank" rel="nofollow">豫ICP备15036959号-4</a> </div> </div> </div> <script type="text/javascript"> layui.config({ base: '/static/js/layuiadmin/' //静态资源所在路径 }).extend({ qf: '../qfplus/qf/qf', contact: '../qfplus/contact/contact', }).use(['contact'], function(){ var contact = layui.contact; contact.render({'position': 'left', 'oappend':'.qf-quick-bar'}); //菜单 jQuery(".submenu").slide({ type:"menu",// 效果类型,针对菜单/导航而引入的参数(默认slide) titCell:".nLi", //鼠标触发对象 targetCell:".sub", //titCell里面包含的要显示/消失的对象 titOnClassName:'current', effect:"slideDown", //targetCell下拉效果 delayTime:300 , //效果时间 triggerTime:0, //鼠标延迟触发时间(默认150) returnDefault:true //鼠标移走后返回默认状态,例如默认频道是“预告片”,鼠标移走后会返回“预告片”(默认false) }); //表单 var form = layui.form; form.render(null, 'component-form'); /* 监听提交 */ form.on('submit(component-form-submit)', function(data){ var searchkey = data.field.searchkey; return true; }); //滚动固顶 $(document).scroll(function(){ var sTop = $(document).scrollTop(); if( sTop >= scrollPh ){ $('.qf-ads-ontop').css({'position':'fixed', 'top':'0'}); }else{ $('.qf-ads-ontop').css({'position':'relative'}); } }); }); <!--百度统计------------------> </script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?9eb8fd7c57fefc4283caaf6d0c7e37f7"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>