";
//$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";
?>