Помогите доделать парс. Очень нужно.
364
0
Всем общий привет!Друзья нужна ваша помощь.
Суть обращения такова есть код парса писал сам "Ну как писал собирал по интернету!" Код вот
Суть обращения такова есть код парса писал сам "Ну как писал собирал по интернету!" Код вот
<form action="" method="get"> <input name="url" placeholder="Искать здесь..." type="search" required> <button type="submit">Поиск</button> </form> <?php /* Грабим все от Названия фильма до Скриншоты (на донноре от Наименование до Скриншоты) */ //откуда будем парсить информацию http://freerutor.com/491046-taymless-3-izumrudnaya-kniga-2016-hdrip $content = file_get_contents($_GET['url']); // Определяем позицию строки, до которой нужно все отрезать $pos = strpos($content, '<b>Наименование:</b>'); $pos = strpos($content, '<div style="margin-top: 5px;"> '); //Режим хлам $content=preg_replace('|<b>Есть реклама</b>(.*?)<!--/noindex-->|is','',$content); $content=preg_replace('|<!--noindex--><b>Видео данные:</b>(.*?)<br />|is','',$content); $content=preg_replace('|<ul id="fr_tex"><li><!--noindex--><b>Видео:</b>(.*?)<br />|is','',$content); $content=preg_replace('|<b>Аудио:</b> (.*?)<br />|is','',$content); $content=preg_replace('|<b>Аудио данные:</b>(.*?)<br />|is','',$content); $content=preg_replace('|<b>Субтитры:</b>(.*?)<br />|is','',$content); $content=preg_replace('|<li class="fr_one">(.*?)</li>|is','',$content); $content=preg_replace('|<li class="fr_two">(.*?)</li>|is','',$content); $content=preg_replace('|<li class="fr_three">(.*?)</li>|is','',$content); $content=preg_replace('|<div style="margin-top: 5px;">(.*?)</div>|is','',$content); //Отрезаем все, что идет до нужной нам позиции $content = substr($content, $pos); // Точно таким же образом находим позицию конечной строки $pos = strpos($content, '</div></div>'); // Отрезаем нужное количество символов от нулевого $content = substr($content, 0, $pos); // выводим спарсенный текст. echo $content; ?>
0
Все работает но мне нужно чтобы данные строки
$content=str_replace('Наименование','Название',$content);
$content=str_replace('Продолжительность:','Продолжительность:',$content); поменялись местами и стали так $content=str_replace('Продолжительность:','Продолжительность:',$content);
$content=str_replace('Наименование','Название',$content);
То есть, при парсинге страница выводится так:
Можно. Записываешь данные в массив как надо, а потом implode(массив) в переменую. Но тут уже нужно использовать регулярку. Но вот как это сделать не могу понять. Тем более что с пыхом вообще никогда не сталкивался. Кто может помочь? Заранее всем спасибо.
$content=str_replace('Наименование','Название',$content);
$content=str_replace('Продолжительность:','Продолжительность:',$content); поменялись местами и стали так $content=str_replace('Продолжительность:','Продолжительность:',$content);
$content=str_replace('Наименование','Название',$content);
То есть, при парсинге страница выводится так:
Название: [b][/b] Оригинальное название: [b][/b] Жанр: Страна: Режиссер: В ролях: [b]О фильме:[/b] Перевод: [b] [/b] Продолжительность:А нужно что бы так:
Название: [b][/b] Оригинальное название: [b][/b] Жанр: Страна: Режиссер: В ролях: Продолжительность: Перевод: [b] [/b] [b]О фильме:[/b]Мне один человек говорил что можно сделать так (вот его слова):
Можно. Записываешь данные в массив как надо, а потом implode(массив) в переменую. Но тут уже нужно использовать регулярку. Но вот как это сделать не могу понять. Тем более что с пыхом вообще никогда не сталкивался. Кто может помочь? Заранее всем спасибо.
0
Лови костыль
<?php $data = file_get_contents("http://freerutor.com/491046-taymless-3-izumrudnaya-kniga-2016-hdrip"); preg_match_all('/<b>Название:<\/b>(.*)<br.\/><b>Оригинальное название:<\/b>(.*)<br.\/><b>Жанр:<\/b>(.*)<br.\/><b>Выпущено:<\/b>(.*)<br.\/><b>Режиссер:<\/b>(.*)<br.\/><b>В ролях:<\/b>(.*)<div.*<b>Краткое описание:<\/b>(.*)<div.*<b>Видео:<\/b>(.*)<br.\/><b>Аудио:<\/b>(.*)<br.\/><b>Перевод:<\/b>(.*)<br.\/><b>Продолжительность:<\/b>(.*)<!/sU', $data, $matches); unset($matches[0]); $result = []; foreach ($matches AS $key => $value) { $result[] = trim(strip_tags($value[0])); } list($name, $original_name, $genre, $country, $producer, $actors, $description, $video, $audio, $voice, $duration) = $result; echo '<b>Название:</b> ' , $name , '<br/>'; echo '<b>Оригинальное название:</b> ' , $original_name , '<br/>'; echo '<b>Жанр:</b> ' , $genre , '<br/>'; echo '<b>Страна:</b> ' , $country , '<br/>'; echo '<b>Режиссер:</b> ' , $producer , '<br/>'; echo '<b>В ролях:</b> ' , $actors , '<br/>'; echo '<b>Описание:</b> ' , $description , '<br/>'; echo '<b>Видео:</b> ' , $video , '<br/>'; echo '<b>Аудио:</b> ' , $audio , '<br/>'; echo '<b>Перевод:</b> ' , $voice , '<br/>'; echo '<b>Продолжительность:</b> ' , $duration , '<br/>';
0
GalaxyNote7,
Спасибо сейчас попробую.
Добавлено через 02:45 сек.
GalaxyNote7,
Parse error: syntax error, unexpected '[' in W:\domains\localhost\pr\index.php on line 8
Спасибо сейчас попробую.
Добавлено через 02:45 сек.
GalaxyNote7,
Parse error: syntax error, unexpected '[' in W:\domains\localhost\pr\index.php on line 8
+1
на другой. первый только для одного файла.
Код
ты какую версию php используешь?
<?php $data = file_get_contents("http://freerutor.com/489953-smertelnoe-oruzhie-1-sezon-1-8-serii-iz-18-2016-web-dlrip-lostfilm"); function clear($var) { return trim(strip_tags($var)); } if (preg_match('/<b>(?:Наименование|Название):<\/b>(.*)<br \/>/sU', $data, $name)) { echo '<b>Название:</b> ', clear($name[1]), '<br/>'; } if (preg_match('/<b>Оригинальное (?:наименование|название):<\/b>(.*)<br \/>/sU', $data, $original_name)) { echo '<b>Оригинальное название:</b> ', clear($original_name[1]), '<br/>'; } if (preg_match('/<b>(?:Категория|Жанр):<\/b>(.*)<br \/>/sU', $data, $genre)) { echo '<b>Жанр:</b> ', clear($genre[1]), '<br/>'; } if (preg_match('/<b>(?:Произведено|Страна):<\/b>(.*)<br \/>/sU', $data, $country)) { echo '<b>Страна:</b> ', clear($country[1]), '<br/>'; } if (preg_match('/<b>(?:Режиссер постановщик|Режиссер):<\/b>(.*)<br \/>/sU', $data, $producer)) { echo '<b>Режиссер:</b> ', clear($producer[1]), '<br/>'; } if (preg_match('/<b>(?:В главных ролях|В ролях):<\/b>(.*)<div/sU', $data, $actors)) { echo '<b>В ролях:</b> ', clear($actors[1]), '<br/>'; } if (preg_match('/<b>(?:Краткое описание|Описание):<\/b>(.*)<div/sU', $data, $description)) { echo '<b>Описание:</b> ', clear($description[1]), '<br/>'; } if (preg_match('/<b>(?:Видео данные|Видео):<\/b>(.*)<br \/>/sU', $data, $video)) { echo '<b>Видео:</b> ', clear($video[1]), '<br/>'; } if (preg_match('/<b>(?:Аудио данные|Аудио):<\/b>(.*)<br \/>/sU', $data, $audio)) { echo '<b>Аудио:</b> ', clear($audio[1]), '<br/>'; } if (preg_match('/<b>(?:Перевод|Озвучивание):<\/b>(.*)(?:<br \/>|<\/li)/sU', $data, $voice)) { echo '<b>Перевод:</b> ', clear($voice[1]), '<br/>'; } if (preg_match('/<b>Продолжительность:<\/b>(.*)(?:<br \/>|<\/li)/sU', $data, $duration)) { echo '<b>Продолжительность:</b> ', clear($duration[1]), '<br/>'; }
Изменил: JustZero (29.01.2017 / 19:14)
0
GalaxyNote7,
5,3
Добавлено через 04:21 сек.
GalaxyNote7,
Спасибо то что нужно.Еще раз ОГРОМНОЕ СПАСИБО.
5,3
Добавлено через 04:21 сек.
GalaxyNote7,
Спасибо то что нужно.Еще раз ОГРОМНОЕ СПАСИБО.
0
Слушай еще один маленький вопросик можно?
на другой. первый только для одного файла.
Код
ты какую версию php используешь?
Можно ли как-то в этом коде прописать чтобы ссылки на торрент и ютуб выводились тоже???
0
Все решил эту проблему. Там не спарсить ссылки на торрент так как они находяся в системной папке.Спасибо еще раз.
0
[quote=GalaxyNote7Код (29.01.17 / 19:06) Отредактировано: GalaxyNote7 (29.01.17 / 19:14)]
на другой. первый только для одного файла.
Привет слушай можно еще вопросик по этому коду??? Если да то вот в чем суть в новостях которые парсю есть такое вот то есть название год и т.д: Один против всех / Предатель (1-12 серии из 16) (2017) SATRip
То что цветное мне нужно вывести в определенные поля, но как это сделать понять не могу так как к примеру делаю таким образом:
в такое поле Добавлена серия 1-8 (из 8) . И второе: при парсинге другого фильма-сериала меняется название Убить гонца \/ Пристрелите посланника и парс не выводит ничего из этого поля, можно ли как-то это реализовать????? На что моей головы хватило то и перепробовал но ничего не помогло.Помоги плиз. Заранее спасибо.
на другой. первый только для одного файла.
Привет слушай можно еще вопросик по этому коду??? Если да то вот в чем суть в новостях которые парсю есть такое вот то есть название год и т.д: Один против всех / Предатель (1-12 серии из 16) (2017) SATRip
То что цветное мне нужно вывести в определенные поля, но как это сделать понять не могу так как к примеру делаю таким образом:
if (preg_match('/<h1>Убить гонца \/ Пристрелите посланника(.*)(?: WEB-DLRip | ColdFilm|<\/h1>)/sU', $data, $duh)) { echo '', clear($duh[1]), ''; }Выводит вроде бы (1 сезон: 1-8 серии из 8) (2016) но 2 вещи, первая мне нужно это разбить по разным полям это--> 2016 должно стать в поле Год, а это -->1 сезон: 1-8 серии из 8
в такое поле Добавлена серия 1-8 (из 8) . И второе: при парсинге другого фильма-сериала меняется название Убить гонца \/ Пристрелите посланника и парс не выводит ничего из этого поля, можно ли как-то это реализовать????? На что моей головы хватило то и перепробовал но ничего не помогло.Помоги плиз. Заранее спасибо.
Изменил: igrovik1 (31.01.2017 / 22:32)
Для выполнения действия необходимо авторизоваться!