Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Regexp для граба топовых тумб на сиджах
Новая тема
Ответить
цитата
12/07/11 в 14:33
Cristian
Привет
Есть задача написать несколько универсальных регулярных выражений для граба первой топовой тумбы с сайтов трейдеров для создания тумбового топа.
Может, у кого готовое есть, уже писал для своих нужд?
Трейдпульс вроде умеет это делать, но регулярные выражения оттуда не достать ввиду закрытого кода...
цитата
12/07/11 в 15:59
Dr.Syshalt
Я писал такую грабилку для тубов с год назад - как раз топовые N тумб выбрать, создать дампы. Универсальных решений нет, но вроде как неплохие результаты, десятками сиджетубы ворошит. Возможно код ембеда выцеплять. Интеграция со Стримом есть (хотя она дело такое, что сегодня работает, а завтра - как у Душика настроение будет). Ниши/категории учитывает.
Стучись, если тебе такой комбайн нужен
цитата
12/07/11 в 16:14
bari
Была сходная задача, мозговой штурм про регулярки как универсального решения ничего не дал. А помогла вот такая штучка:
http://sourceforge.net/projects/simplehtmldom/
Но вот такой вариант почти идеален(пишу по памяти, могут быть ошибки):
<a .+?>[^<>]*?<img .*?src=['"](.+?/.+?/.+?\.jpg)['"].*?>[^<>]*?</a>
цитата
12/07/11 в 16:25
Dr.Syshalt
bari, там проблема не только в том, чтобы выделить картинки. Имидж из страницы выцепить хоть через DOM, хоть через регулярки - задача одинаково простая (хотя нормальные пацаны регулярки не используют). Сам я, к примеру, HTML::Parser использовал для этого. Simple HTML DOM все-таки тормоз, да и нафиг PHP использовать на чем-то, где скорость важна (но это чисто мое мнение).
Проблема в том, чтобы выцепить именно тумбы, а не произвольные имиджи/элементы дизайна. И вот тут все становится куда интереснее. Я, к примеру, эту задачу решал статистическим анализом всех имиджей на странице - то есть идея понятна, что у тумб URLы наиболее похожи, ведут себя похожим образом, рядом с ними - подписи и тп. Но вот выцепить это дело - совсем не так просто, я даже уже сам с ходу не вспомню, как я там выкручивался, но как-то работает до сих пор, как мне известно ))))
Пардон, если выглядит, что я что-то назойливо рекламирую (может, и не без того), но задача и вправду не так проста. Хотя могу что-то не понимать.
цитата
12/07/11 в 16:37
Alexandur
Dr.Syshalt писал:
хотя нормальные пацаны регулярки не используют
Это почему?
А вылавливать, кмк, достаточно по хрефу. У 95% сиджеев там сидит урл, либо просто кодированный, либо на базе 64.
цитата
12/07/11 в 16:44
Dr.Syshalt
gimcnuk писал:
Это почему?
Можно я тебя к кому-то, кто это уже объяснял, отошлю, чтоб тут не разводить на 10 страниц разговор?
http://stackoverflow.com/questions/1732348/regex-match-open-tags-ex ained-tags
Один из ответов
Цитата:
While it is true that asking regexes to parse arbitrary HTML is like asking Paris Hilton to write an operating system, it's sometimes appropriate to parse a limited, known set of HTML.
А тут речь идет как раз о том, что парсер должет быть как можно более универсальным
Цитата:
А вылавливать, кмк, достаточно по хрефу. У 95% сиджеев там сидит урл, либо просто кодированный, либо на базе 64.
Еще так же могут выглядеть ссылки на другие сиджи, например. В элементе дизайна тоже может быть href и там, о сюрприз, будет URL. Что еще может быть в href?
цитата
12/07/11 в 16:50
bari
gimcnuk писал:
У 95% сиджеев там сидит урл, либо просто кодированный, либо на базе 64
И чо? (с)
Как регуляркой понять что урл кодирован? Там жеш рандом почти.
Есть еще мультинишевые сиджи, там сидит сцыль на категорию.
Самое главное - надежно выцепить имидж по минимальному кол-ву фильтров.
цитата
12/07/11 в 17:10
bari
Dr.Syshalt писал:
Simple HTML DOM все-таки тормоз, да и нафиг PHP использовать на чем-то, где скорость важна (но это чисто мое мнение)
Ну пишем на перле, получаем 1.37 секунды вместо 2.19 на ПХП, радуемся. Получаем пачку проблем что перла на хосте у заказчика не оказалось по причине: ... тут длинный список вариантов... Переписываем под "великий всюду стоящий". Profit!?
цитата
12/07/11 в 17:20
Dr.Syshalt
bari писал:
Ну пишем на перле, получаем 1.37 секунды вместо 2.19 на ПХП
Скорее ближе к 30 минутам vs 50 минут на хорошей задаче ;) Ну, может не так фатально (поскольку там не только в парсинге время тратится), но ты понял, о чем я. Если там несколько десятков сиджей в списке + в каждом N категорий...
Цитата:
Получаем пачку проблем что перла на хосте у заказчика не оказалось по причине
Ты хоть раз на живом сервере бывал у того самого заказчика, или просто теоретизируешь?
Назови мне хоть одну OS, где нет perl как обязательного элемента. Ну, кроме винды.
цитата
12/07/11 в 17:30
Alexandur
Dr.Syshalt писал:
Еще так же могут выглядеть ссылки на другие сиджи, например. В элементе дизайна тоже может быть href и там, о сюрприз, будет URL. Что еще может быть в href?
bari писал:
Как регуляркой понять что урл кодирован? Там жеш рандом почти
Ссылки на другие сиджи имеют другой формат, в них отсутствует http. Кодированный через base64 урл будет иметь соответственно aHR0c, не рандом.
цитата
12/07/11 в 17:35
bari
Dr.Syshalt писал:
Назови мне хоть одну OS
При чем тут ОС, про хостинг речь.
И нее надо мне про перл - больная тема, загубленный язык, на котором довелось попрограммить с пяток лет точно, даже не помню сколько именно, постоянно путаюсь в показаниях
Короче - до.уя. Да, можно и сейчас шедеврить на нем, но есть время собирать камни, а есть время их разрасывать. Перловка - не вариант уже, типа латыни.
цитата
12/07/11 в 17:44
bari
gimcnuk писал:
Ссылки на другие сиджи имеют другой формат, в них отсутствует http. Кодированный через base64 урл будет иметь соответственно aHR0c, не рандом.
Все, либо почти все, ссылки с тумб ведут на аут скрипт, параметры его, в общем случае - не известны. Кодировка тоже не имеет формальных признаков, в общем случае, по крайней мере ее в регулярке не отобразить. Сидж скриптов вообще сколько в широком употреблении? Я знаю минимум семь.
aHR0c - это что?)
цитата
12/07/11 в 18:01
Dr.Syshalt
gimcnuk писал:
Ссылки на другие сиджи имеют другой формат, в них отсутствует http.
Ты опять делаешь какое-то предположение, которое обязательно должно исполняться, чтобы все работало.
Вот тут, например, будет работать
http://pigstube.com/
А что вот с этими, например, делать?
http://www.beatmybox.com/
http://www.lustporntube.com/
Или вот тут?
http://streamretro.com/
Как ты им морды распарсишь, чтобы добраться хотя бы куда надо, до галер? А в последнем случае - там и в галерах сам видишь, что. Кстати - на тумбы с линками на другие сиджи обрати внимание.
bari писал:
При чем тут ОС, про хостинг речь.
Ну хоть один хостинг покажи, где на дедике или VPS нету perl. Более того - PHP часто ставить самому приходится. А perl уже там. Всегда.
Короче, вы хоть до упаду тут спорьте, я просто смысла не вижу спорить с фантазиями.
цитата
12/07/11 в 20:32
Sven
да, полно вариантов.
я делаю общей функцией, если не работает -
пишу ручками условия - под каждый сидж
цитата
13/07/11 в 15:58
Alexandur
bari писал:
Все, либо почти все, ссылки с тумб ведут на аут скрипт, параметры его, в общем случае - не известны. Кодировка тоже не имеет формальных признаков, в общем случае, по крайней мере ее в регулярке не отобразить. Сидж скриптов вообще сколько в широком употреблении? Я знаю минимум семь.
aHR0c - это что?)
Это http в base64. И именно их (http и aHR0c) можно отлавливать в УРЛ. А какой формат у аут-скрипта и не важно.
Dr.Syshalt:
в первом, втором и третьем случае тумбу вообще нет смысла отлавливать, так как нет общего страницы с популярными тумбами, по категониям разбросаны. Владельцу в любом случае придётся конкретизировать, откуда брать.
В третьем - да, наличие тумбового топа портит дело.
Хорошо, твой метод будет работать в 99%, мною предложенный в 90%. С другой стороны: пара строк против комбайна.
цитата
13/07/11 в 16:10
Dr.Syshalt
gimcnuk писал:
в первом, втором и третьем случае тумбу вообще нет смысла отлавливать, так как нет общего страницы с популярными тумбами, по категониям разбросаны. Владельцу в любом случае придётся конкретизировать, откуда брать.
В третьем - да, наличие тумбового топа портит дело.
Хорошо, твой метод будет работать в 99%, мною предложенный в 90%. С другой стороны: пара строк против комбайна.
Ты забываешь, что "комбайн" еще позволяет и с морды произвольного сиджа нужные категории вытащить. Просто указываешь список сиджей и список категорий, которые тебя интересуют. А вручную на 50 сиджах вытащить списки всех галер, протыкав и прокопипастив все линки на все галеры в нужных категориях - это как бы задача для ну очень терпеливых ;)
Ты сам бы попробовал написать, потом бы мне рассказывал про 90%...
цитата
13/07/11 в 17:13
Alexandur
Dr.Syshalt писал:
Ты забываешь, что "комбайн" еще позволяет и с морды произвольного сиджа нужные категории вытащить.
Сложно забыть то, чего в глаза не видел.
Ты бы как раз и продемонстрировал, как твой комбайн с вышеуказанными сайтами справляется.
цитата
13/07/11 в 17:19
Dr.Syshalt
gimcnuk писал:
Сложно забыть то, чего в глаза не видел.
Ты бы как раз и продемонстрировал, как твой комбайн с вышеуказанными сайтами справляется.
Кому надо - продемонстрирую. А так вышеуказанные сайты - это из набора стандартных тестов, на которых я алгоритм обкатывал. Но спасибо, что поправил - в самом деле, я не учел такого момента
цитата
19/07/11 в 13:14
nagual3
Dr.Syshalt писал:
Ну хоть один хостинг покажи, где на дедике или VPS нету perl. Более того - PHP часто ставить самому приходится. А perl уже там. Всегда.
Хочу добавить что в отличии от пхп скрипты на perl как правило не чуствительны к версии perl будь там 5.8 или 5.12 и новые фичи,такие как ~~ проверка на вхождение элемента в массив используются пока очень редко, а любую необходимую библиотеку можно доставить через cpan без всяких apt-get или yum ну или на крайняк просто скачать и подключить через
use FindBin;
use lib "$FindBin::Bin/...
ЗЫ Оно еще и памяти меньше потребляет кстати ...
Новая тема
Ответить
Эта страница в полной версии