Универсальный парсер

Started by Lektor on 2015-01-15 01:42 — 403 replies, 76419 views

#141
@Ress Kent у вас идет три переменные подряд, которые разумеется переопределяются.
$text = preg_replace("#<a href=\"http://www.imdb.com/title/(.*?)\".*?>.*?</a>#si", "[imdb]http://www.imdb.com/title/\\1[/imdb]", $text);
$text = preg_replace("#<a href=\"http://www.kinopoisk.ru/film/(.*?)\".*?>.*?</a>#si", "[kp]http://www.kinopoisk.ru/film/\\1[/kp]", $text);
Так сделайте.
#142
@Exile Так пробывал, они вообще перестают работать, в общем для себя решил проблему.
Просто заменил оригинальную строчку на свои две в таком порядке

    $text = preg_replace("#<a href=\"http://www.imdb.com/title/(.*?)\".*?>.*?</a>#si", "[imdb]http://www.imdb.com/title/\\1[/imdb]", $copy_release);
    $text = preg_replace("#<a href=\"http://www.kinopoisk.ru/film/(.*?)\".*?>.*?</a>#si", "[kp]http://www.kinopoisk.ru/film/\\1[/kp]", $copy_release);

Во всех релизах на руторе первым идет рейтинг imdb и за ним кинопоиск, в итоге обе строчки работают в такой последовательности. Остальные ссылки не парсяться, но они мне не нужны.
#143
Найти:
$text = preg_replace("#<hr />#si", "[hr]", $text);
чуть поправив:
$text = preg_replace("#<hr />#si", "[hr]", $copy_release);
переместить и вставить после:
$copy_release = $copy_post[1];
и уже ниже этого:
$text = preg_replace("#<hr />#si", "[hr]", $copy_release);
добавляем:
 $text = preg_replace("#<a href=\"http://www.imdb.com/title/(.*?)\".*?>.*?</a>#si", "[imdb]http://www.imdb.com/title/\\1[/imdb]", $text);
$text = preg_replace("#<a href=\"http://www.kinopoisk.ru/film/(.*?)\".*?>.*?</a>#si", "[kp]http://www.kinopoisk.ru/film/\\1[/kp]", $text);
и все работает.
#144
Да еще забыл
найти:
 $text = preg_replace("#<a href=\"(.*?)\".*?>(.*?)</a>#si", "[url=\\1]\\2[/url]", $copy_release);
и исправть на
 $text = preg_replace("#<a href=\"(.*?)\".*?>(.*?)</a>#si", "[url=\\1]\\2[/url]", $text);
#145
Покажите как в итоге должно выглядеть
Сделал как написано, картинки и ссылки перестало парсить
Код с вашими изменениями
    $copy_release = $copy_post[1];

    $text = preg_replace("#<a href=\"(.*?)\".*?>(.*?)</a>#si", "[url=\\1]\\2[/url]", $text);
    $text = preg_replace("#<img src=\"(\S*?)\" style=\"float:(.*?);\" />#si", "[img=\\2]\\1[/img]", $text);
    $text = preg_replace("#<img src=\"(\S*?)\" />#si", "[img]\\1[/img]", $text);
    $text = preg_replace("#<hr />#si", "[hr]", $copy_release);
    $copy_release = $copy_post[1];
    $text = preg_replace("#<hr />#si", "[hr]", $copy_release);
    $text = preg_replace("#<a href=\"http://www.imdb.com/title/(.*?)\".*?>.*?</a>#si", "[imdb]http://www.imdb.com/title/\\1[/imdb]", $text);
    $text = preg_replace("#<a href=\"http://www.kinopoisk.ru/film/(.*?)\".*?>.*?</a>#si", "[kp]http://www.kinopoisk.ru/film/\\1[/kp]", $text);

Мой рабочий на данный момент выглядит так

    $copy_release = $copy_post[1];

    $text = preg_replace("#<a href=\"http://www.imdb.com/title/(.*?)\".*?>.*?</a>#si", "[imdb]http://www.imdb.com/title/\\1[/imdb]", $copy_release);
    $text = preg_replace("#<a href=\"http://www.kinopoisk.ru/film/(.*?)\".*?>.*?</a>#si", "[kp]http://www.kinopoisk.ru/film/\\1[/kp]", $copy_release);
    $text = preg_replace("#<img src=\"(\S*?)\" style=\"float:(.*?);\" />#si", "[img=\\2]\\1[/img]", $text);
    $text = preg_replace("#<img src=\"(\S*?)\" />#si", "[img]\\1[/img]", $text);
    $text = preg_replace("#<hr />#si", "[hr]", $text);
#146
Вот так:
    $copy_release = $copy_post[1];
    $text = preg_replace("#<hr />#si", "[hr]", $copy_release);
    $text = preg_replace("#<a href=\"http://www.imdb.com/title/(.*?)\".*?>.*?</a>#si", "[imdb]\\1[/imdb]", $text);
    $text = preg_replace("#<a href=\"http://www.kinopoisk.ru/film/(.*?)\".*?>.*?</a>#si", "[kp]\\1[/kp]", $text);
    $text = preg_replace("#<a href=\"http://www.kinopoisk.ru/level/1/film/(.*?)\".*?>.*?</a>#si", "[kp]\\1[/kp]", $text);
    $text = preg_replace("#<a href=\"(.*?)\".*?>(.*?)</a>#si", "[url=\\1]\\2[/url]", $text);
    $text = preg_replace("#<img src=\"(\S*?)\" style=\"float:(.*?);\" />#si", "[img=\\2]\\1[/img]", $text);
    $text = preg_replace("#<img src=\"(\S*?)\" />#si", "[img]\\1[/img]", $text);
$copy_release должно быть в начале и одно.
#147
@dexer7 все работает, спасибо!
#148
Аналогичная проблема. Все сделал по инструкции. Но вместо написанного в инструкции
copy library/ajax/parser.php to library/ajax/parser.php скопировал в папку /ajax/ потому что нету папки library
так же и с copy library/includes/functions_parser.php, скопировал просто в папку includes

Все остальное сделал по инструкции.

Файлы прилагаю.:
Spoiler content hidden.

Spoiler content hidden.

Spoiler content hidden.

Заранее спасибо за помощь.
Данные сервера:
Apache 2.2.15 (CentOS )
PHP/5.3.29
TP: 2.1.1

такая же проблема! есть решение?
#149
Привет народ,вопрос такой он может парсить автоматически если указать раздел
#150
Последние несколько дней при парсинге с rutracker.org перестал регистрироваться торрент-файл. Выдается сообщение: "Не удалось зарегистрировать торрент на трекере".
http://s005.*******.host/i212/1509/be/18f467a2be87.jpg
До этого все парсилось нормально. Может какие изменения на rutracker.org произошли?

В движке ничего не менял.
Версия TorrentPier II: 2.1.5 [ALPHA]