forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   URL в теле страницы (http://forum.boolean.name/showthread.php?t=17068)

moka 24.07.2012 21:44

Ответ: URL в теле страницы
 
Цитата:

Сообщение от Randomize (Сообщение 234157)
Нет, просто ситуация выглядит так:

Твоё видение ситуации кардинально отличается от моего.

Цитата:

Сообщение от Randomize (Сообщение 234157)
X: Здравствуйте, меня есть грузовик, как мне правильно перевезти шкаф?
Y: Я умею водить троллейбус, так что возьми троллейбус (Автомат и прочие с жикверями)
Z: Я умею водить трактор, возьми трактор (Мока с нодой)

X: Здраствуйте, мне нужно перевезти шкаф.
Y: Бери BMW ван, и перевози.
Z: Бери Node грузовик, он отлично подходит, как раз для твоего груза создан.
X: У меня есть трактор.

Цитата:

Сообщение от Randomize (Сообщение 234157)
Нет баттхёрта от ноды. Нода малаца. Просто пойми, я тут тоже мог предложить PHP или Ruby ну или Perl. А можно и линукс поставить с wget`oм и башем. Мог предложить даже WScript. Но всё это не верные пути. Я полагаю, что топик стартеру кроме парса страницы надо будет ещё что либо (например рендер шняги в Xors3D)

Речь идёт о вебе.
Если ты возьмёшь всё что ты перечислил выше, то подход будет пачти такой же как в C++, немножко может комфортее в Perl'е, но там нужно знать фичи и либы юзать.

Я же предложил что создано для таких задачь от части, речь идёт о парсинге веб данных, я предложил инструмент который адаптирован для этого. Не более.

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

ABTOMAT 24.07.2012 21:55

Ответ: URL в теле страницы
 
Цитата:

Сообщение от Randomize (Сообщение 234157)
Нет, просто ситуация выглядит так:

X: Здравствуйте, меня есть грузовик, как мне правильно перевезти шкаф?
Y: Я умею водить троллейбус, так что возьми троллейбус (Автомат и прочие с жикверями)
Z: Я умею водить трактор, возьми трактор (Мока с нодой)

Нет баттхёрта от ноды. Нода малаца. Просто пойми, я тут тоже мог предложить PHP или Ruby ну или Perl. А можно и линукс поставить с wget`oм и башем. Мог предложить даже WScript. Но всё это не верные пути. Я полагаю, что топик стартеру кроме парса страницы надо будет ещё что либо (например рендер шняги в Xors3D)

Минуточку, Импер вообще не сказал, что у него есть грузовик. Так что я предложил своё решение. Если бы вопрос стоял как "Дайте мне решение для грузовика", то ситуация была бы иная.
Опоздал, Мока уже написал что я хотел.

impersonalis 25.07.2012 00:17

Ответ: URL в теле страницы
 
Ну, раз уж вы строите предположения, то лучшая аналогия:

хх: здравствуйте, научите меня делить столбиком. Правильно ли я делаю: (пример деления двух чисел)
yy: бери калькулятор
zz: бери MATLAB

Часть домыслов отпадает, если обратить внимание на раздел: "Алгоритмика" - подразумевается общее решение (а-ля псевдокод), ну или указание на его титаническую сложность в таком виде. Т.е. задав вопрос о сортировке числе, я ожидаю увидеть что-то вроде описания алгоритма вставок, пузырька, челночной и т.п., а не "юзай функцию super_sort (реализация которой представлена объектным файлом)" или "юзай такой-то табличный процессор". Вот если бы я создал тред в "болтовне" или в одном из форумов "Веб-программирования" - то дело другое.

Без претензий, ещё раз спасибо, что уделили время.

jimon 25.07.2012 00:30

Ответ: URL в теле страницы
 
impersonalis
это веб детка ! тут могут дать в еб... javascript ! представь себе что на тексте висит выделение по наведению курсора через css, а клик и переход делается через javascript, оно как ссылка, ай и не ссылка ! Where is Your God Now ? :crazy:

ps. html5

impersonalis 25.07.2012 00:33

Ответ: URL в теле страницы
 
Это указано: нужны только "явные" (не знаю, какой терминологически верно) ссылки:
Цитата:

Сообщение от impersonalis (Сообщение 233817)
... но без учёта всяких интегрируемых объектов типа перехода при клике внутри flash-объекта [от которого в HTML останется лишь уопминание]).

Цитата:

Сообщение от impersonalis (Сообщение 233971)
...Думал регэксп использовать чтоб забраковать href-ы содержащие ссылки, получаемые в результате выполнения скрипта (т.е. не содержащие ссылки в явном виде).


moka 25.07.2012 00:35

Ответ: URL в теле страницы
 
Цитата:

Сообщение от impersonalis (Сообщение 234178)
хх: здравствуйте, научите меня делить столбиком. Правильно ли я делаю: (пример деления двух чисел)
yy: бери калькулятор
zz: бери MATLAB

Брать C++ для таких вещей - это, как Assembler или MATLAB для того что ты спрашивал.

То что я предложил, на серверной стороне - есть самый оптимальный и минимальный вариант. То что предложил АВТО - это самый нормальный и оптимальный вариант для фронт-енда, если тебе нужно тупо получить результат сразу.
А юзать С++ для таких вещей - это полный изврат. Если ты знаешь С++, и не знаешь других инструментов, может всё таки стоит попробовать что-то ещё, более заточенное под конкретную нужду?

Плюс, ты спросил вопрос про веб, где 95% решений будет именно в виде javascript'а, т.к. ты не указал если тебе это нужно на backend стороне, следственно для таких задачей самое разумное это JS на фронтенде.

Это не алгоритм сортировки.
Да даже предложить регулярные выражения тогда по такой логике нельзя - т.к. не во всех языках есть с коробки, и нужны либы.

jimon 25.07.2012 00:36

Ответ: URL в теле страницы
 
impersonalis
будь уверен - внутри <a ... href - ссылка, но ! а что вместо ссылки там javascript ?! (это тот который в адресной строке выполнится) :crazy: Where is Your God Now ? :crazy:

impersonalis 25.07.2012 00:50

Ответ: URL в теле страницы
 
2jimon

Цитата:

забраковать href-ы содержащие ссылки, получаемые в результате выполнения скрипта (т.е. не содержащие ссылки в явном виде).
2MoKa
я понял, и написал выше:
Цитата:

Сообщение от impersonalis (Сообщение 234113)
Но, видать, овчинка выделки не стоит.

Просто уточнил ваши предположения.
зыж нет цпп мои познания не ограничиваются.

moka 25.07.2012 00:54

Ответ: URL в теле страницы
 
Угу, такое бывает.
PHP код:

<a href="javascript:alert('clicked');">link</a

Заместо alert'а, можно сделать window.location... и тогда будет перенаправление.
Также можно сделать <div onclick="..." ... и там в скрипте открывать ссылки тоже.
Также есть ajax, где данные не статичны, и тупо получая разметку из исходника - недостаточно, т.к. DOM динамически генерируется скриптом, пример: facebook, twitter, и многие другие.

Да и предлагать С++ для таких вещей - это как ассемблер или матлаб для деления в столбик. А node для серверного парсинга html'а - это как раз прямой и самый адекватный вариант для серверной стороны. Либо js для фронтенда (ну тут без вариантов) также самый нормальный и прямой способ.

impersonalis 25.07.2012 00:56

Ответ: URL в теле страницы
 
У меня складывается ощущение, что вы обсуждаете не мою, а свои проблемы.

ОТВЕТ НА МОЙ ВОПРОС (в первом посте): "нет, твой ублюдский алгоритм не учитывает всех тонкостей. Алгоритм, работающий корректно, слишком сложен, чтобы его объяснить тут на пальцах" (мои посты, похоже в приципе не отображаются, и участники обсуждают мысли друг друга).

Просьба закрыть тему.

ABTOMAT 25.07.2012 01:04

Ответ: URL в теле страницы
 
Цитата:

Сообщение от jimon (Сообщение 234184)
impersonalis
будь уверен - внутри <a ... href - ссылка, но ! а что вместо ссылки там javascript ?! (это тот который в адресной строке выполнится) :crazy: Where is Your God Now ? :crazy:

Еслир там жаба то легко отличить: она начинается с javascript:
А вообще тому кто так верстает надо дать по щам.

Randomize 25.07.2012 01:15

Ответ: URL в теле страницы
 
Цитата:

Сообщение от impersonalis (Сообщение 234064)
Если я применю этот регэксп целиком к телу, то получу просто false, не так ли? На что опираться выбирая разделители для нарезки тела на потенциальные ссылки?

Цитата:

#<a\s[^>]*href=\"([^\"]*)\"[^>]*>(.*)<\/a>#siU
Нет ^ и $ то есть нет чёткого ограничения для регулярки. Она гуляет по всему тексту с рекурсией. (см мой мини учебник)
Обрати внимание на круглые скобки. Всё что в них выплюнется в результат.

Тобеж для каждого найденного будет:
0) полная строка по шаблону. Например: <a href="http://popka/">ссылка</a>
1)<a href="{текст отсюда}"></a>
2)<a href="">{и текст отсюда}</a>

Цитата:

Сообщение от jimon (Сообщение 234184)
impersonalis
будь уверен - внутри <a ... href - ссылка, но ! а что вместо ссылки там javascript ?! (это тот который в адресной строке выполнится) :crazy: Where is Your God Now ? :crazy:

Будь уверен что после получения html кода и запуска JS DOM уже не будет прежним. Чёрт побери, да современная веб страница перестраивает себя зачастую чуть ли не на 50% в процессе работы.

jimon 25.07.2012 03:30

Ответ: URL в теле страницы
 
Цитата:

Сообщение от ABTOMAT (Сообщение 234194)
Еслир там жаба то легко отличить: она начинается с javascript:
А вообще тому кто так верстает надо дать по щам.

можно долго рассуждать кому надо давать по щам, но как только появляется заказчик с кучей денег, то на любой проект связанный с "сделайте что-то для интернета" (скажем связанное с топиком - граббер ссылок) приходится отвечать нет, ибо ВСЕГДА найдется пидо..идиот с супер кривым сайтом о котором знает только заказчик :crazy:

ABTOMAT 25.07.2012 03:31

Ответ: URL в теле страницы
 
Цитата:

Сообщение от jimon (Сообщение 234208)
можно долго рассуждать кому надо давать по щам, но как только появляется заказчик с кучей денег, то на любой проект связанный с "сделайте что-то для интернета" (скажем связанное с топиком - граббер ссылок) приходится отвечать нет, ибо ВСЕГДА найдется пидо..идиот с супер кривым сайтом о котором знает только заказчик :crazy:

Несколькими постами выше я как раз писал о том, что в Интернетах пишут кто как хочет и так или иначе придётся это учитывать.
А по щщам давать всё равно надо.

impersonalis 25.07.2012 23:26

Ответ: URL в теле страницы
 
Спасибо, что закрыли тему, а не продолжили обсуждать свои взгляды.


Часовой пояс GMT +4, время: 13:32.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot