Помогите доделать парс. Очень нужно.
1.
igrovik1 (29.01.2017 / 17:35)
Всем общий привет!Друзья нужна ваша помощь.
Суть обращения такова есть код парса писал сам "Ну как писал собирал по интернету!" Код вот
<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;
?>
2.
igrovik1 (29.01.2017 / 17:35)
Все работает но мне нужно чтобы данные строки
$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(массив) в переменую. Но тут уже нужно использовать регулярку. Но вот как это сделать не могу понять. Тем более что с пыхом вообще никогда не сталкивался. Кто может помочь? Заранее всем спасибо.
3.
JustZero (29.01.2017 / 18:30)
Лови костыль
<?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/>';
4.
igrovik1 (29.01.2017 / 18:54)
GalaxyNote7,
Спасибо сейчас попробую.
Добавлено через 02:45 сек.
GalaxyNote7,
Parse error: syntax error, unexpected '[' in W:\domains\localhost\pr\index.php on line 8
5.
JustZero (29.01.2017 / 19:06)
на другой. первый только для одного файла.
Код
<?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/>';
}
ты какую версию php используешь?
6.
igrovik1 (29.01.2017 / 19:19)
GalaxyNote7,
5,3
Добавлено через 04:21 сек.
GalaxyNote7,
Спасибо то что нужно.Еще раз ОГРОМНОЕ СПАСИБО.
7.
igrovik1 (29.01.2017 / 21:20)
на другой. первый только для одного файла.
Код
ты какую версию php используешь?
Слушай еще один маленький вопросик можно?
Можно ли как-то в этом коде прописать чтобы ссылки на торрент и ютуб выводились тоже???
8.
igrovik1 (30.01.2017 / 00:40)
Все решил эту проблему. Там не спарсить ссылки на торрент так как они находяся в системной папке.Спасибо еще раз.
9.
igrovik1 (31.01.2017 / 22:30)
[quote=GalaxyNote7Код (29.01.17 / 19:06) Отредактировано: GalaxyNote7 (29.01.17 / 19:14)]
на другой. первый только для одного файла.
Привет слушай можно еще вопросик по этому коду??? Если да то вот в чем суть в новостях которые парсю есть такое вот то есть название год и т.д: Один против всех / Предатель (
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) . И второе: при парсинге другого фильма-сериала меняется название
Убить гонца \/ Пристрелите посланника и парс не выводит ничего из этого поля, можно ли как-то это реализовать????? На что моей головы хватило то и перепробовал но ничего не помогло.Помоги плиз. Заранее спасибо.
10.
igrovik1 (01.02.2017 / 02:39)
И это решил тоже!!!
11.
igrovik1 (01.02.2017 / 03:10)
Вот что у меня получилось:
Это начальный --->
Это уже доделал как мне нужно было --->
Еще бы сделать кнопку скачать скриншоты было бы вообще супер.
Еще раз Спасибо.
URL:
https://visavi.net/topics/43393