Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: PHP, CURL. POST - GET запросы Forbidden 403
Форумы портала PHP.SU » » HTTP и PHP » PHP, CURL. POST - GET запросы Forbidden 403

Страниц (1): [1]
 

1. spz - 02 Января, 2012 - 23:35:55 - перейти к сообщению
Здравствуйте уважаемые пользователи!
Пишу скрипт для автоматического скачивания музыкальных треков с одного известного музыкального сайта. Для этого использую библиотеку CURL.
C помощью сниффера отследил заголовки, передаваемые\передаваемые серверу(ом):
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. http://www.zaycev.by/auth/signin.php
  3.  
  4. POST /auth/signin.php HTTP/1.1
  5. Host: www.zaycev.by
  6. User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
  7. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  8. Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
  9. Accept-Encoding: gzip, deflate
  10. Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
  11. Connection: keep-alive
  12. Referer: http://www.zaycev.by/
  13. Cookie: __utma=72410904.982912500.1314876904.1324801947.1325534692.10; __utmz=72410904.1314876904.1.1.utmcsr=forum.world-games.by|utmccn=(referral)|utmcmd=referral|utmcct=/index.php; __utmb=72410904.3.10.1325534692; __utmc=72410904
  14. Content-Type: application/x-www-form-urlencoded
  15. Content-Length: 39
  16. j_username=spz1993&j_password=30vfq1993
  17. HTTP/1.1 302 Moved Temporarily
  18. Date: Mon, 02 Jan 2012 20:05:11 GMT
  19. Connection: keep-alive
  20. Server: Apache-Coyote/1.1
  21. Set-Cookie: JSESSIONID=6634XDFen8lm2VfKPYz1.0; Domain=.zaycev.net; Path=/
  22. Set-Cookie: JSESSIONID=7UbuEgg0C2lE07kxSfm6.0; Domain=.zaycev.net; Path=/
  23. Set-Cookie: reme=c3B6MTk5MzoxMzI2NzQ0MzExOTE3OjdhNmU2NjNmZmZiODFiYWQxZDAwY2FmM2JiM2RlM2Y4; Domain=.zaycev.by; Expires=Mon, 16-Jan-2012 20:05:11 GMT; Path=/
  24. Location: http://www.zaycev.by/index.shtml
  25. Content-Length: 0
  26. ----------------------------------------------------------
  27. http://www.zaycev.by/index.shtml
  28.  
  29. GET /index.shtml HTTP/1.1
  30. Host: www.zaycev.by
  31. User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
  32. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  33. Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
  34. Accept-Encoding: gzip, deflate
  35. Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
  36. Connection: keep-alive
  37. Referer: http://www.zaycev.by/
  38. Cookie: __utma=72410904.982912500.1314876904.1324801947.1325534692.10; __utmz=72410904.1314876904.1.1.utmcsr=forum.world-games.by|utmccn=(referral)|utmcmd=referral|utmcct=/index.php; __utmb=72410904.3.10.1325534692; __utmc=72410904; reme=c3B6MTk5MzoxMzI2NzQ0MzExOTE3OjdhNmU2NjNmZmZiODFiYWQxZDAwY2FmM2JiM2RlM2Y4
  39.  
  40. HTTP/1.1 200 OK
  41. Date: Mon, 02 Jan 2012 20:05:12 GMT
  42. Content-Type: text/html;charset=windows-1251
  43. Transfer-Encoding: chunked
  44. Connection: keep-alive
  45. Server: Apache-Coyote/1.1
  46. Set-Cookie: JSESSIONID=zOZoc6IuFgpzoPMatmEo.0; Domain=.zaycev.net; Path=/
  47. Set-Cookie: JSESSIONID=EUIjG4UEkTA5cPe331fY.0; Domain=.zaycev.net; Path=/
  48. Content-Language: ru-RU
  49. Content-Encoding: gzip
  50. ----------------------------------------------------------
  51.  
  52. ----------------------------------------------------------
  53. http://www.zaycev.by/pages/9992/999294.shtml
  54.  
  55. GET /pages/9992/999294.shtml HTTP/1.1
  56. Host: www.zaycev.by
  57. User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
  58. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  59. Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
  60. Accept-Encoding: gzip, deflate
  61. Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
  62. Connection: keep-alive
  63. Referer: http://www.zaycev.by/index.shtml
  64. Cookie: __utma=72410904.982912500.1314876904.1324801947.1325534692.10; __utmz=72410904.1314876904.1.1.utmcsr=forum.world-games.by|utmccn=(referral)|utmcmd=referral|utmcct=/index.php; __utmb=72410904.4.10.1325534692; __utmc=72410904; reme=c3B6MTk5MzoxMzI2NzQ0MzExOTE3OjdhNmU2NjNmZmZiODFiYWQxZDAwY2FmM2JiM2RlM2Y4
  65.  
  66. HTTP/1.1 200 OK
  67. Date: Mon, 02 Jan 2012 20:05:19 GMT
  68. Content-Type: text/html;charset=windows-1251
  69. Transfer-Encoding: chunked
  70. Connection: keep-alive
  71. Server: Apache-Coyote/1.1
  72. Set-Cookie: JSESSIONID=9HrcpfQvDnto0ffmBSOm.0; Domain=.zaycev.net; Path=/
  73. Set-Cookie: JSESSIONID=OARLAiPvBtGyJXQVDHEf.0; Domain=.zaycev.net; Path=/
  74. Content-Language: ru-RU
  75. Content-Encoding: gzip
  76. ----------------------------------------------------------
  77.  
  78. ----------------------------------------------------------
  79. http://www.zaycev.by/download.php?ass=Pitbull+%26+Chris+Brown_-_International+Love+(by+Pitbull+Dance+version).mp3&id=999294
  80.  
  81. GET /download.php?ass=Pitbull+%26+Chris+Brown_-_International+Love+(by+Pitbull+Dance+version).mp3&id=999294 HTTP/1.1
  82. Host: www.zaycev.by
  83. User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
  84. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  85. Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
  86. Accept-Encoding: gzip, deflate
  87. Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
  88. Connection: keep-alive
  89. Referer: http://www.zaycev.by/pages/9992/999294.shtml
  90. Cookie: __utma=72410904.982912500.1314876904.1324801947.1325534692.10; __utmz=72410904.1314876904.1.1.utmcsr=forum.world-games.by|utmccn=(referral)|utmcmd=referral|utmcct=/index.php; __utmb=72410904.5.10.1325534692; __utmc=72410904; reme=c3B6MTk5MzoxMzI2NzQ0MzExOTE3OjdhNmU2NjNmZmZiODFiYWQxZDAwY2FmM2JiM2RlM2Y4
  91.  
  92. HTTP/1.1 200 OK
  93. Date: Mon, 02 Jan 2012 20:05:23 GMT
  94. Content-Type: text/html;charset=windows-1251
  95. Transfer-Encoding: chunked
  96. Connection: keep-alive
  97. Server: Apache-Coyote/1.1
  98. Set-Cookie: JSESSIONID=Cwd3S1OQvAvWlvAY1u6I.0; Domain=.zaycev.net; Path=/
  99. Set-Cookie: JSESSIONID=jOPFtEHmUxcfzzrNwa32.0; Domain=.zaycev.net; Path=/
  100. Set-Cookie: ZAYCEVNETIDdl="H4sIAAAAAAAAAAEgAd/+5FF19FwhrG1qNmscvgiTBOoEVoIgyE2ggqQzIMtFXXwfc6T9m+lUM37irwA0ET0eyww6L0QVta2AmyL1RxhSjYCgtmRyIEmQ4nPzUZLz15JnDcOzbKFTOcAbTg/NvrbUQs1fM/JmU/lIF1FCkj+ij/GQ14rvC9k+qf+HLRKHKRTlSNg1KrFpaRKDfuu1BZ2RvfPrdmIEZnkLO3fXEpJaR29vvFxdJpKDXQjTPtT+U1JAYBiJGzjg6026ic6Q00gvcQ46YGIFzktdEef9p5ny3wIF3jYQ2cduQbXLnaxJphyBeYZK0Zy20n8xbkHerZFwDSwFrMS2wH58Wcly9E6rH6TV9j1DnQG5rXyRQ7cU6tVY4jnQlTCSa3UiS1h6mbYestlQgCABAAA="; Version=1; Max-Age=600; Expires=Mon, 02-Jan-2012 20:15:23 GMT
  101. Content-Language: ru-RU
  102. Content-Encoding: gzip
  103. ----------------------------------------------------------
  104.  
  105. ----------------------------------------------------------
  106. http://dl.zaycev.by/0e32d0ec-8d3f-4c46-b012-edc200cfafd2/9992/999294/pitbull_and_chris_brown_-_international_love_by_pitbull_dance_version.mp3
  107.  
  108. GET /0e32d0ec-8d3f-4c46-b012-edc200cfafd2/9992/999294/pitbull_and_chris_brown_-_international_love_by_pitbull_dance_version.mp3 HTTP/1.1
  109. Host: dl.zaycev.by
  110. User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
  111. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  112. Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
  113. Accept-Encoding: gzip, deflate
  114. Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
  115. Connection: keep-alive
  116. Referer: http://www.zaycev.by/download.php?ass=Pitbull+%26+Chris+Brown_-_International+Love+(by+Pitbull+Dance+version).mp3&id=999294
  117. Cookie: __utma=72410904.982912500.1314876904.1324801947.1325534692.10; __utmz=72410904.1314876904.1.1.utmcsr=forum.world-games.by|utmccn=(referral)|utmcmd=referral|utmcct=/index.php; __utmb=72410904.6.10.1325534692; __utmc=72410904; reme=c3B6MTk5MzoxMzI2NzQ0MzExOTE3OjdhNmU2NjNmZmZiODFiYWQxZDAwY2FmM2JiM2RlM2Y4
  118.  
  119. HTTP/1.1 200 OK
  120. Server: nginx/0.8.53
  121. Date: Mon, 02 Jan 2012 20:05:25 GMT
  122. Content-Type: audio/mpeg
  123. Content-Length: 2012764
  124. Last-Modified: Tue, 17 May 2011 06:31:43 GMT
  125. Connection: keep-alive
  126. Content-Disposition: attachment; filename=pitbull_and_chris_brown_-_international_love_by_pitbull_dance_version.mp3
  127. Accept-Ranges: bytes
  128. ----------------------------------------------------------
  129.  


Понял, что для получения заветной прямой ссылки на музыкальный файл, необходимо сначала произвести вход на сайт под своим логином и паролем, затем получить необходимые "печеньки":
PHP:
скопировать код в буфер обмена
  1.  
  2. $login = '**********';
  3.     $password = '*********';
  4.     $data = 'j_username='.$login.'&j_password='.$password;
  5.      
  6.     $get = post('http://zaycev.by/auth/signin.php',$data,'htt://zaycev.net/login.php');
  7.        
  8.     $headers = array(
  9.                     'Host: www.zaycev.by',
  10.                     'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  11.                     'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
  12.                     'Accept-Encoding: deflate',
  13.                     'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7',
  14.                     'Connection: keep-alive'
  15.                     );  
  16.         $ch = curl_init($url);
  17.         curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0");
  18.         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  19.         curl_setopt($ch, CURLOPT_URL, "http://www.zaycev.by/pages/9992/999294.shtml");  
  20.         curl_setopt($ch, CURLOPT_REFERER, "http://www.zaycev.by/index.shtml");
  21.         curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
  22.         curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
  23.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  24.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  25.         $answer  = curl_exec($ch);
  26.     curl_close($ch);
  27.      
  28.     $ch = curl_init();
  29.         curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0");
  30.         curl_setopt($ch, CURLOPT_URL,"http://www.zaycev.by/download.php?ass=Pitbull+%26+Chris+Brown_-_International+Love+(by+Pitbull+Dance+version).mp3&id=999294");
  31.         curl_setopt($ch, CURLOPT_REFERER, "http://www.zaycev.by/pages/9992/999294.shtml");
  32.         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  33.         curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
  34.                 curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
  35.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  36.                 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);            
  37.         $answer  = curl_exec($ch);
  38.         $begin = strpos($answer,"<a href='") + 9;
  39.         $end = strpos($answer, ".mp3'>ссылку")+4;
  40.         $belen = $end - $begin;
  41.         $adrdownload = substr($answer, $begin, $belen);
  42.     curl_close($ch);
  43.          
  44.     $headers = array(
  45.                     'Host: dl.zaycev.by',
  46.                     'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  47.                     'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
  48.                     'Accept-Encoding: deflate',
  49.                     'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7',
  50.                     'Connection: keep-alive'
  51.                     );  
  52.     $ch = curl_init();
  53.                 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0");
  54.                 curl_setopt($ch, CURLOPT_REFERER, "http://www.zaycev.by/download.php?ass=Pitbull+%26+Chris+Brown_-_International+Love+(by+Pitbull+Dance+version).mp3&id=999294");
  55.         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  56.                 curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
  57.                 curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
  58.                 curl_setopt($ch, CURLOPT_URL, $adrdownload);
  59.                 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  60.                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  61.                 $result  = curl_exec($ch);
  62.                 if ($result)
  63.                 {
  64.                         header("Content-type: audio/mpeg");
  65.                         header("Content-Length: 2012764");
  66.                         header("Content-Disposition: attachment;filename=pitbull_and_chris_brown_-_international_love_by_pitbull_dance_version.mp3");
  67.                         header("Accept-Ranges: bytes");
  68.                         exit();
  69.                 }
  70.     curl_close($ch);
  71.        
  72.        
  73.  
  74.     function post($url,$post,$refer)
  75.     {
  76.         $ch = curl_init($url);
  77.                         curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0");
  78.                         curl_setopt($ch, CURLOPT_POST, 1);
  79.                         curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
  80.                         curl_setopt($ch, CURLOPT_REFERER, $refer);
  81.                         curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
  82.                         curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
  83.                         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  84.                         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  85.                         $answer  = curl_exec($ch);
  86.         curl_close($ch);
  87.         return $answer;
  88.     }
  89.  


В ответ сервер выдает Forbidden 403. Бьюсь над данным скриптом уже недели две. Вот решил обратиться к вам за помощью. Буду рад любых ее проявлениях...
2. PATCH - 06 Января, 2012 - 03:35:20 - перейти к сообщению
http://forum.php.su/rd.php?http:...url-site-parser/ - вот пример там помойму все архивы качает и документ файлы)

 

Powered by ExBB FM 1.0 RC1