Реклама на сайте Advertise with us

Regexp для граба топовых тумб на сиджах

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 06.02.03
Сообщения: 209
Рейтинг: 66

Ссылка на сообщениеДобавлено: 12/07/11 в 14:33       Ответить с цитатойцитата 

Привет crutop.gif
Есть задача написать несколько универсальных регулярных выражений для граба первой топовой тумбы с сайтов трейдеров для создания тумбового топа.
Может, у кого готовое есть, уже писал для своих нужд? crutop07.gif
Трейдпульс вроде умеет это делать, но регулярные выражения оттуда не достать ввиду закрытого кода...

1
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 12/07/11 в 15:59       Ответить с цитатойцитата 

Я писал такую грабилку для тубов с год назад - как раз топовые N тумб выбрать, создать дампы. Универсальных решений нет, но вроде как неплохие результаты, десятками сиджетубы ворошит. Возможно код ембеда выцеплять. Интеграция со Стримом есть (хотя она дело такое, что сегодня работает, а завтра - как у Душика настроение будет). Ниши/категории учитывает.

Стучись, если тебе такой комбайн нужен icon_smile.gif

0
 



С нами с 06.03.11
Сообщения: 281
Рейтинг: 206


Передовик Master-X (01.08.2011)
Ссылка на сообщениеДобавлено: 12/07/11 в 16:14       Ответить с цитатойцитата 

Была сходная задача, мозговой штурм про регулярки как универсального решения ничего не дал. А помогла вот такая штучка: http://sourceforge.net/projects/simplehtmldom/

Но вот такой вариант почти идеален(пишу по памяти, могут быть ошибки):
<a .+?>[^<>]*?<img .*?src=['"](.+?/.+?/.+?\.jpg)['"].*?>[^<>]*?</a>

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 12/07/11 в 16:25       Ответить с цитатойцитата 

bari, там проблема не только в том, чтобы выделить картинки. Имидж из страницы выцепить хоть через DOM, хоть через регулярки - задача одинаково простая (хотя нормальные пацаны регулярки не используют). Сам я, к примеру, HTML::Parser использовал для этого. Simple HTML DOM все-таки тормоз, да и нафиг PHP использовать на чем-то, где скорость важна (но это чисто мое мнение).

Проблема в том, чтобы выцепить именно тумбы, а не произвольные имиджи/элементы дизайна. И вот тут все становится куда интереснее. Я, к примеру, эту задачу решал статистическим анализом всех имиджей на странице - то есть идея понятна, что у тумб URLы наиболее похожи, ведут себя похожим образом, рядом с ними - подписи и тп. Но вот выцепить это дело - совсем не так просто, я даже уже сам с ходу не вспомню, как я там выкручивался, но как-то работает до сих пор, как мне известно ))))

Пардон, если выглядит, что я что-то назойливо рекламирую (может, и не без того), но задача и вправду не так проста. Хотя могу что-то не понимать.

0
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 12/07/11 в 16:37       Ответить с цитатойцитата 

Dr.Syshalt писал:
хотя нормальные пацаны регулярки не используют

Это почему?

А вылавливать, кмк, достаточно по хрефу. У 95% сиджеев там сидит урл, либо просто кодированный, либо на базе 64.

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 12/07/11 в 16:44       Ответить с цитатойцитата 

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?

0
 



С нами с 06.03.11
Сообщения: 281
Рейтинг: 206


Передовик Master-X (01.08.2011)
Ссылка на сообщениеДобавлено: 12/07/11 в 16:50       Ответить с цитатойцитата 

gimcnuk писал:
У 95% сиджеев там сидит урл, либо просто кодированный, либо на базе 64


И чо? (с) icon_smile.gif Как регуляркой понять что урл кодирован? Там жеш рандом почти.
Есть еще мультинишевые сиджи, там сидит сцыль на категорию.
Самое главное - надежно выцепить имидж по минимальному кол-ву фильтров.

0
 



С нами с 06.03.11
Сообщения: 281
Рейтинг: 206


Передовик Master-X (01.08.2011)
Ссылка на сообщениеДобавлено: 12/07/11 в 17:10       Ответить с цитатойцитата 

Dr.Syshalt писал:
Simple HTML DOM все-таки тормоз, да и нафиг PHP использовать на чем-то, где скорость важна (но это чисто мое мнение)


Ну пишем на перле, получаем 1.37 секунды вместо 2.19 на ПХП, радуемся. Получаем пачку проблем что перла на хосте у заказчика не оказалось по причине: ... тут длинный список вариантов... Переписываем под "великий всюду стоящий". Profit!? icon_wink.gif

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 12/07/11 в 17:20       Ответить с цитатойцитата 

bari писал:
Ну пишем на перле, получаем 1.37 секунды вместо 2.19 на ПХП


Скорее ближе к 30 минутам vs 50 минут на хорошей задаче ;) Ну, может не так фатально (поскольку там не только в парсинге время тратится), но ты понял, о чем я. Если там несколько десятков сиджей в списке + в каждом N категорий...


Цитата:
Получаем пачку проблем что перла на хосте у заказчика не оказалось по причине


Ты хоть раз на живом сервере бывал у того самого заказчика, или просто теоретизируешь?

Назови мне хоть одну OS, где нет perl как обязательного элемента. Ну, кроме винды.

0
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 12/07/11 в 17:30       Ответить с цитатойцитата 

Dr.Syshalt писал:

Еще так же могут выглядеть ссылки на другие сиджи, например. В элементе дизайна тоже может быть href и там, о сюрприз, будет URL. Что еще может быть в href?


bari писал:
Как регуляркой понять что урл кодирован? Там жеш рандом почти


Ссылки на другие сиджи имеют другой формат, в них отсутствует http. Кодированный через base64 урл будет иметь соответственно aHR0c, не рандом.

0
 



С нами с 06.03.11
Сообщения: 281
Рейтинг: 206


Передовик Master-X (01.08.2011)
Ссылка на сообщениеДобавлено: 12/07/11 в 17:35       Ответить с цитатойцитата 

Dr.Syshalt писал:
Назови мне хоть одну OS


При чем тут ОС, про хостинг речь.
И нее надо мне про перл - больная тема, загубленный язык, на котором довелось попрограммить с пяток лет точно, даже не помню сколько именно, постоянно путаюсь в показаниях icon_smile.gif Короче - до.уя. Да, можно и сейчас шедеврить на нем, но есть время собирать камни, а есть время их разрасывать. Перловка - не вариант уже, типа латыни.

0
 



С нами с 06.03.11
Сообщения: 281
Рейтинг: 206


Передовик Master-X (01.08.2011)
Ссылка на сообщениеДобавлено: 12/07/11 в 17:44       Ответить с цитатойцитата 

gimcnuk писал:
Ссылки на другие сиджи имеют другой формат, в них отсутствует http. Кодированный через base64 урл будет иметь соответственно aHR0c, не рандом.


Все, либо почти все, ссылки с тумб ведут на аут скрипт, параметры его, в общем случае - не известны. Кодировка тоже не имеет формальных признаков, в общем случае, по крайней мере ее в регулярке не отобразить. Сидж скриптов вообще сколько в широком употреблении? Я знаю минимум семь.

aHR0c - это что?)

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 12/07/11 в 18:01       Ответить с цитатойцитата 

gimcnuk писал:
Ссылки на другие сиджи имеют другой формат, в них отсутствует http.


Ты опять делаешь какое-то предположение, которое обязательно должно исполняться, чтобы все работало.
Вот тут, например, будет работать

http://pigstube.com/

А что вот с этими, например, делать?
http://www.beatmybox.com/
http://www.lustporntube.com/

Или вот тут?

http://streamretro.com/

Как ты им морды распарсишь, чтобы добраться хотя бы куда надо, до галер? А в последнем случае - там и в галерах сам видишь, что. Кстати - на тумбы с линками на другие сиджи обрати внимание.

bari писал:
При чем тут ОС, про хостинг речь.


Ну хоть один хостинг покажи, где на дедике или VPS нету perl. Более того - PHP часто ставить самому приходится. А perl уже там. Всегда.

Короче, вы хоть до упаду тут спорьте, я просто смысла не вижу спорить с фантазиями.

0
 

xxx

С нами с 17.10.02
Сообщения: 1355
Рейтинг: 744

Ссылка на сообщениеДобавлено: 12/07/11 в 20:32       Ответить с цитатойцитата 

да, полно вариантов.
я делаю общей функцией, если не работает -
пишу ручками условия - под каждый сидж icon_smile.gif

Много cj/tube трафа? Заработай на показах баннеров. Высокий CPM.

0
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 13/07/11 в 15:58       Ответить с цитатойцитата 

bari писал:
Все, либо почти все, ссылки с тумб ведут на аут скрипт, параметры его, в общем случае - не известны. Кодировка тоже не имеет формальных признаков, в общем случае, по крайней мере ее в регулярке не отобразить. Сидж скриптов вообще сколько в широком употреблении? Я знаю минимум семь.

aHR0c - это что?)

Это http в base64. И именно их (http и aHR0c) можно отлавливать в УРЛ. А какой формат у аут-скрипта и не важно.

Dr.Syshalt: в первом, втором и третьем случае тумбу вообще нет смысла отлавливать, так как нет общего страницы с популярными тумбами, по категониям разбросаны. Владельцу в любом случае придётся конкретизировать, откуда брать.
В третьем - да, наличие тумбового топа портит дело.
Хорошо, твой метод будет работать в 99%, мною предложенный в 90%. С другой стороны: пара строк против комбайна.

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 13/07/11 в 16:10       Ответить с цитатойцитата 

gimcnuk писал:
в первом, втором и третьем случае тумбу вообще нет смысла отлавливать, так как нет общего страницы с популярными тумбами, по категониям разбросаны. Владельцу в любом случае придётся конкретизировать, откуда брать.

В третьем - да, наличие тумбового топа портит дело.
Хорошо, твой метод будет работать в 99%, мною предложенный в 90%. С другой стороны: пара строк против комбайна.


Ты забываешь, что "комбайн" еще позволяет и с морды произвольного сиджа нужные категории вытащить. Просто указываешь список сиджей и список категорий, которые тебя интересуют. А вручную на 50 сиджах вытащить списки всех галер, протыкав и прокопипастив все линки на все галеры в нужных категориях - это как бы задача для ну очень терпеливых ;)

Ты сам бы попробовал написать, потом бы мне рассказывал про 90%...

0
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 13/07/11 в 17:13       Ответить с цитатойцитата 

Dr.Syshalt писал:
Ты забываешь, что "комбайн" еще позволяет и с морды произвольного сиджа нужные категории вытащить.

Сложно забыть то, чего в глаза не видел.
Ты бы как раз и продемонстрировал, как твой комбайн с вышеуказанными сайтами справляется.

0
 

Чингачгук, вождь красноглазых

С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824

Ссылка на сообщениеДобавлено: 13/07/11 в 17:19       Ответить с цитатойцитата 

gimcnuk писал:
Сложно забыть то, чего в глаза не видел.
Ты бы как раз и продемонстрировал, как твой комбайн с вышеуказанными сайтами справляется.


Кому надо - продемонстрирую. А так вышеуказанные сайты - это из набора стандартных тестов, на которых я алгоритм обкатывал. Но спасибо, что поправил - в самом деле, я не учел такого момента smail54.gif

0
 



С нами с 29.04.09
Сообщения: 295
Рейтинг: 72

Ссылка на сообщениеДобавлено: 19/07/11 в 13:14       Ответить с цитатойцитата 

Dr.Syshalt писал:

Ну хоть один хостинг покажи, где на дедике или VPS нету perl. Более того - PHP часто ставить самому приходится. А perl уже там. Всегда.


Хочу добавить что в отличии от пхп скрипты на perl как правило не чуствительны к версии perl будь там 5.8 или 5.12 и новые фичи,такие как ~~ проверка на вхождение элемента в массив используются пока очень редко, а любую необходимую библиотеку можно доставить через cpan без всяких apt-get или yum ну или на крайняк просто скачать и подключить через
Код: [развернуть]


ЗЫ Оно еще и памяти меньше потребляет кстати ...

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »