Advertisement
Guest User

Untitled

a guest
Dec 6th, 2016
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. <?php
  2.  
  3. set_time_limit(0);
  4.  
  5. function trader($id,$data)
  6. {
  7. $ch = curl_init( 'http://investor.moex.com/ru/statistics/2016/portfolio.aspx/GetPortfolioData' );
  8. $payload = json_encode( array( "traderId"=> $id, "date"=> $data, "tableId"=>"6" ) );
  9. curl_setopt( $ch, CURLOPT_POSTFIELDS, $payload );
  10. curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
  11. curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
  12. $result = curl_exec($ch);
  13. curl_close($ch);
  14. $dec=json_decode($result);
  15. return json_decode($dec->d);
  16. }
  17.  
  18. function post($url,$data,$cookies=FALSE)
  19. {
  20. $ch = curl_init();
  21. curl_setopt($ch, CURLOPT_URL, $url);
  22. if ($cookies!==FALSE) curl_setopt($ch, CURLOPT_COOKIE, $cookies);
  23. curl_setopt($ch, CURLOPT_POST, 1);
  24. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  25. curl_setopt($ch, CURLOPT_HEADER, 1);
  26. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  27. curl_setopt($ch, CURLOPT_TIMEOUT, 0);
  28. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
  29. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  30. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  31. $result = curl_exec($ch);
  32. if (!$result) return curl_error($ch);
  33. return $result;
  34. }
  35.  
  36. $data=array();
  37.  
  38. $date='20161116';
  39. $date2='2016-11-16';
  40.  
  41. $page=1;
  42. $traders=array();
  43.  
  44. while (true)
  45. {
  46. echo "page $page\n";
  47. $tmp=post('http://investor.moex.com/ru/statistics/2016/default.aspx','act=&sby=8&nick=&data-contype-id-1=&data-contype-id-2=&data-contype-id-3=&pge='.$page.'&type=1&date='.$date.'&gr=12&snick=');
  48. if (!preg_match_all('#trader2016\?user\=(\d+)#',$tmp,$tt)) break;
  49. $page++;
  50. $traders=array_unique(array_merge($traders,$tt[1]));
  51. echo "count ".count($traders)."\n";
  52. //var_dump($traders);
  53. //break;
  54. }
  55.  
  56. foreach ($traders as $trader)
  57. {
  58. echo "Trader: $trader\n";
  59. $tdata=trader($trader,$date2);
  60. foreach ($tdata as $td)
  61. {
  62. if (empty($data[trim($td->seccode)]))
  63. {
  64. $data[trim($td->seccode)]['plus']=0;
  65. $data[trim($td->seccode)]['minus']=0;
  66. }
  67. $pos=substr($td->pos,0,strpos($td->pos,' ('));
  68. if ($pos>0) $data[trim($td->seccode)]['plus']+=$pos;
  69. elseif ($pos<0) $data[trim($td->seccode)]['minus']+=$pos;
  70. echo $td->seccode.": ".$pos."\n";
  71. }
  72. }
  73. echo "\n-----------------------------\n";
  74. foreach ($data as $s=>$v)
  75. {
  76. echo "$s\t".$v['plus']."\t".$v['minus']."\n";
  77. }
  78. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement