"; //$fileByUrl = 'http://myanimelist.net/anime/21939/Mushishi_Zoku_Shou'; //$fileByUrl = 'http://myanimelist.net/anime/21939/Mushishi_Zoku_Shou/characters'; //$referer = 'http://myanimelist.net/'; function goXpath($html) { $doc = new DOMDocument; @$doc->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8')); $xpath = new DomXPath($doc); return $xpath; } #################################################### $num_ids = 2; //Скільки ID'ів спарсити. $start_id = 1500; // почати з... for ($i = 0; $i <= $num_ids; $i++) { $id = $start_id + $i; // З якого іду почати $url = "http://myanimelist.net/anime/$id/"; //Формуємо URl $html = get_html($url); //Отримуємо 1-шу сторінку $xpath = goXpath($html); //Зкормлюємо її xpath. $name_to_url = str_replace(" ", "_", ParseNames($xpath, 'title')); //заміняємо пробіли на підкреслення. //Перевіряємо, чи існує такий ID, Якщо існує, то... if ($name_to_url != 'Invalid_Request') { extract(ParseGeneral($xpath)); // Розпаковуємо елементи масиву в змінні. extract(ParseInfo($xpath), EXTR_PREFIX_ALL, 'i'); // Розпаковуємо елементи масиву в змінні з префіксом "i_". $titles = ParseNames($xpath); // Парсимо назви. $studios = ParseStudios($xpath); // Парсимо студії. $genres = ParseGenres($xpath); // Парсимо жанри. $name_to_url = str_replace("%", "", $name_to_url); //Прибираємо зайві символи з URL для другого запиту (персонажі та стафф). $url2 = $url . $name_to_url . '/characters'; // Додаємо шлях до персонажів. $html = get_html($url2); //Отримуємо 2-шу сторінку $xpath = goXpath($html); //Зкормлюємо її xpath. $characters = ParseCharacters($xpath); // Парсимо персонажів (ід, ім'я, роль). $people = ParsePeople($xpath); // Парсимо стафф (ід, ім'я, роль). ###################################################### //$img preg_match('(\d+)', $url, $arr); // ID echo "ID: $arr[0]
"; // Формуємо загальний масив $full_array = array( 'anime' => array( 'id' => $arr[0], 'image_url' => $img, 'img_base64' => $img_base64, 'type' => $i_type, 'episodes' => $i_episodes, 'status' => $i_status, 'aired' => $i_aired, 'duration' => $i_duration, 'rating' => $i_rating, 'synopsis' => $synopsis, 'titles' => $titles, 'studios' => $studios, 'genres' => $genres, 'characters' => $characters, 'people' => $people ) ); //Переганяємо його у JSON-масив $full_array = json_encode($full_array); file_put_contents("$arr[0].json", $full_array); // та записуємо у файл. } } echo "Peak: ".memory_get_peak_usage()." bytes \n"; ?>