VKontakte рдХрдИ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрдЧреАрдд рдХрд╛ рдПрдХ рдЕрджреНрднреБрдд рдФрд░ рд╕реНрдерд┐рд░ рднрдВрдбрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдирд╛рдо рд╕реЗ рдПрдХ рдЧреАрдд рдХреИрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рд░реЗрдбрд┐рдпреЛ рд╕реНрдЯреЗрд╢рдиреЛрдВ рдХреЗ рдЪрд╛рд░реНрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ рдФрд░ рдЬрд┐рди рдЧреАрддреЛрдВ рдХреЛ рд╣рдордиреЗ рдЬрд╝рд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдкреИрдХ рдХрд░реЗрдВред рдЧреАрддреЛрдВ рдХреЛ рдЪрд╛рд░реНрдЯ рдкрд░ рдЬрдЧрд╣ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЧрд┐рдирд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ 100 рдЧрд╛рдиреЗ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╕реАрдбреА рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - рдореЛрдЯрд░рдХрд╛рд░ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореБрдЦреНрдп рднреВрдорд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ moskva.fm, рдЬреЛ рдзреНрдпрд╛рди рд╕реЗ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░реЗрдбрд┐рдпреЛ рд╕реНрдЯреЗрд╢рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдереАред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рддреБрдЪреНрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд╢реБрд░реБрдЖрддреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗред
рдХреНрдпрд╛ рд╣реБрдЖ рд╕реНрдХреНрд░реАрди:

рд▓реЛрдЧреЛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдЗрд╕ рд╕реНрдЯреЗрд╢рди рдХреЗ рдЯреЙрдк 100 рдХрд╛ рдПрдХ рдирдпрд╛ рдЬрд╝рд┐рдк-рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдордкреА 3 рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВред
рддреЛ, рдЪрд▓реЛ рдЫреЛрдЯреЗ рд╕реЗ рдмрдбрд╝реЗ рдХреА рдУрд░ рдЪрд▓рддреЗ рд╣реИрдВ:
error_reporting(E_ALL); // simplehtmldom include_once('simplydom.php'); //100 50 = 5000 // - 9000 set_time_limit(9000);
рд╕рд┐рдВрдкрд▓ рдИ рдПрдЪрдЯреАрдПрдордПрд▓рдУрдПрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд┐рдВрдкрд▓реЗрдХреНрд╕ рдПрдХреНрд╕рдПрдордПрд▓ рдФрд░ рдЕрдиреНрдп рдПрдЪрдЯреАрдПрдордПрд▓ / рдбреАрдУрдПрдо рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдПрдирд╛рд▓реЙрдЧ рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ: рдЪреАрдиреА рдиреЗ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рдирд╛рдо рд╕реЗ рдЬреЛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдереВрдХрддрд╛ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛; рдЙрдкрдпреЛрдЧ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рдмрд╛рдж рд╡рд┐рднрд╛рдЬрди рджреЛрд╖ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ; рд╕реНрдореГрддрд┐ рдХреЛ рдЬрдордХрд░ рдЦрд╛рддреА рд╣реИ, tkред рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдФрд░ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдПрдХ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЗрди рдкреНрд░рд┐рдВрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдХреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣рд╛рдБ рднреА рдЫреЛрдЯреЗ, рддреБрд░рдВрдд рдЕрджреГрд╢реНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд рдЪреАрдЬреЗрдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдирдХрд╛рд░рд╛рддреНрдордХ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдпрджрд┐ рд╣рдореЗрдВ рдкреГрд╖реНрда рдХреЗ рдЕрдВрдд рд╕реЗ рддреАрд╕рд░реА рдбрд┐рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ - рд╣рдо рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдЧреАрдд рдХреЛ рдирд╛рдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЬрдЧрд╣ рдореЗрдВ рдмрдЪрд╛рдПрдЧрд╛ред
/* * $title * $path, * "$number $title.mp3" */ function getSongByTitle($title,$path,$number) { // UserAgent $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13)'; $cookie = ''; // $login = '*******@gmail.com'; $password = '********'; // cURL $ch = curl_init(); // POST curl_setopt($ch, CURLOPT_POST, true); // UserAgent curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); // // curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // curl_setopt($ch, CURLOPT_TIMEOUT, 10); // Location: ... curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // curl_setopt($ch, CURLOPT_URL, 'http://login.vk.com/?act=login'); // POST- $post = array( 'act' => 'login', 'q' => '', 'al_frame' => '1', 'expire' => '', 'captcha_sid' => '', 'captcha_key' => '', 'from_host' => 'vkontakte.ru', 'email' => $login, 'pass' => $password ); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); // $answer = curl_exec($ch); // - $sid = substr($answer, strpos($answer, "setCookieEx('sid', '") + 20, 60); $cookie = 'remixsid=' . $sid; // GET curl_setopt($ch, CURLOPT_POST, false); // cookie curl_setopt($ch, CURLOPT_COOKIE, $cookie); // URL curl_setopt($ch, CURLOPT_URL, 'http://vkontakte.ru/al_search.php?al=1&c[q]='.urlencode($title).'&c[section]=audio'); // $answer = curl_exec($ch); curl_close($ch); // json html // $answer = substr($answer,strpos($answer,'{"section":"audio"')); $answer = substr($answer,strpos($answer,'<!> ')+4); $answer = trim($answer); // , if (!file_exists($path . $number . ' ' . $title . '.mp3')) { if (strpos($answer,' ')==false) { // simplydom, $html = str_get_html($answer); // input, 99% // $filelink = $html->find('input',0)->attr['value']; // http://....mp3,bitrate // - - bitrate $filelink = explode(",",$filelink); $filelink = $filelink[0]; echo " $filelink \n"; $ch = curl_init(); // ( , ) $fp = fopen($path . $number . ' ' . $title . '.mp3', 'w'); // cURL curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_URL, $filelink); curl_setopt($ch, CURLOPT_COOKIE, $cookie); $answer = curl_exec($ch); fclose($fp); echo " $filelink \n"; // , PHP seg.fault $html->clear(); unset($html); } else { echo " \n"; } } } /* * zip-, */ function create_zip($files = array(),$destination = '') { if(file_exists($destination)) { return false; } $valid_files = array(); if(is_array($files)) { foreach($files as $file) { if(file_exists($file)) { $valid_files[] = $file; } } } if(count($valid_files)) { $zip = new ZipArchive(); if($zip->open($destination,ZIPARCHIVE::CREATE) !== true) { return false; } foreach($valid_files as $file) { $zip->addFile($file,$file); } $zip->close(); return file_exists($destination); } else { return false; } } $filename = array(); $filename[] = array('href'=>'http://www.moskva.fm/stations/FM_90.8/top100','fm'=>'90_8'); // , // $filename[] = array('href'=>'http://www.moskva.fm/stations/FM_101.2/top100','fm'=>'101_2'); foreach ($filename as $item) { // - $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.2.13) Gecko/20101203'; $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_URL, $item['href']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $answer = curl_exec($ch); $answer = trim($answer); curl_close($ch); echo ' ' . $item['href'] . ' '; $html = str_get_html($answer); // $filesarray $filesarray = array(); for ($i = 0; $i < 100; $i++) { echo '----' . $i . '-------- '; $song = $html->find('td[class=name] pa[class=song]', $i)->innertext; $artist = $html->find('td[class=name] pa[class=artist]', $i)->innertext; $fullsongname = $artist . ' - ' . $song; echo ' ' . $i . ' ' . $fullsongname . "\n"; if (!is_dir($_SERVER['DOCUMENT_ROOT'].'/mp3/'.$item['fm'])) { mkdir($_SERVER['DOCUMENT_ROOT'].'/mp3/'.$item['fm'],0755); } // , // if ($i+1<10) { $number = '0'.$i+1; } else { $number = $i+1; } // getSongByTitle($fullsongname,$_SERVER['DOCUMENT_ROOT'].'/mp3/'.$item['fm'].'/',$number); // $filesarray[] = $_SERVER['DOCUMENT_ROOT'].'/mp3/'.$item['fm'].'/' . $number . ' ' . $fullsongname . '.mp3'; echo " \n"; } if (!is_dir($_SERVER['DOCUMENT_ROOT'].'/zip')) { mkdir($_SERVER['DOCUMENT_ROOT'].'/zip',0755); } // create_zip($filesarray,$_SERVER['DOCUMENT_ROOT'].'/mp3/zip/'.$item['fm'].'.zip'); // , PHP seg.fault $html->clear(); unset($html); }
рдорд╛рд╕реНрдХреЛ рд╕реНрдЯреЗрд╢рди рдЖрд╡реГрддреНрддрд┐ + рд╕реБрдВрджрд░ рдкреАрдПрдирдЬреА рдХрд╛ рд╕рдВрдХреЗрдд рд▓реЛрдЧреЛ рдХрд╛ рдЪрдпрди