PHP uses command line mode to collect stock trend information example code

怪我咯
Release: 2023-03-13 20:32:01
Original
2412 people have browsed it

Stock information When we make financial management websites, we only collect data from portal sites. It is impossible to generate stock information by ourselves. This will require grabbing data from stock sites. Let's take a look at an article about collecting all data from the PHP command line. Stock trend information program, details are as follows.

The main function has only one class implementation (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 = &#39;/&#39; . str_replace(&#39;/&#39;, &#39;\/&#39;, $pattern) . &#39;/&#39;;
  if( preg_match($pattern, $html, $result) ){
  return $result[$itemIndex];
  }else{
  return "-";
  }
 }
 
 //趋势的规则都一样,合并
 private function qushiPattern($name){
  return &#39;<p class="txt-aside">&#39; . $name . &#39;:</p>\s*<p class="txt-main">([^<]*)</p>&#39;;
 }
 
 //支持的标签
 private function name($html){
  return $this -> match("<title>([^\(<]*)\(", $html, 1);
 }
 private function score($html){
  return $this -> match(&#39;<span class="analyze-num">(\d+(\.\d+)?)</span>&#39;, $html);
 }
 private function tips($html){
  return $this -> match(&#39;<span class="analyze-tips">([^<]*)</span>&#39;, $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);
 }
 }
?>
Copy after login

The calling method in the command prompt is as follows (stock.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);
 }
?>
Copy after login


Use directly *\php.exe stock.php The stock code can be called. If the input is too long each time, you can Simplify with batch processing.

Save the following code as stock.cmd.

@XXX\php.exe stock.php %1
Copy after login

Running results:

This completes the collection of individual stock trends. If you want to collect All stock information can be saved as a batch processing file (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...
Copy after login

Double-click to open it to display it. If you want to save it to a file, you can execute batch.cmd &gt ; log.txt, and then copy the results to Execl (or ET) for more responsible analysis.

The above is the detailed content of PHP uses command line mode to collect stock trend information example code. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template