首页 > 编程 > PHP > 正文

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

2020-03-22 17:59:49
字体:
来源:转载
供稿:网友
话不多说,下面直接来看实现代码。 主要函数只有一个类实现(stock.html' target='_blank'>class.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 ' div ' . $name . ': /div s* div ([^ ]*) /div //支持的标签 private function name($html){ return $this - match(" title ([^( ]*)(", $html, 1); private function score($html){ return $this - match(' span (d+(.d+) ) /span ', $html); private function tips($html){ return $this - match(' span ([^ ]*) /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); 命令提示符中的调用方法如下(stock.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 .= " "; echo $stock - getInfo($temp); 直接使用 *php.exe stock.php 股票代码即可实现调用,每次输入太长的,可以用批处理简化。 将下面的代码保存为 stock.cmd。 @XXXphp.exe stock.php %1 运行结果: 这样就完成了单个股票趋势的采集,如果要采集所有的股票信息,可以保存为批处理文件(batch.cmd) @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... 双击打开即可显示,如果想保存到文件,可以执行 batch.cmd log.txt,然后将结果复制到 Execl(或ET)即可进行更负责的分析。 以上就是利用PHP命令行模式采集股票趋势信息的全部内容,这个功能很方便实用,感兴趣的朋友们快快实践起来吧。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表