Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 24.07.2012, 17:21   #16
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: URL в теле страницы

Сообщение от MoKa Посмотреть сообщение
Далее рано или поздно будет (не обязательно кстати) "href="
поподробнее?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 24.07.2012, 17:33   #17
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: URL в теле страницы

Атрибута href может и не оказаться у элемента a.
Вообще элемент - это
<название_элемента атрибут1="значение" атрибут2="значение" ... атрибутN="значение">тело</название_элемента
В-общем, тот же XML.
Ещё может быть самозакрывающийся вариант
<название_элемента атрибуты /> 
Но он к a не относится.

Вообще по сути можно юзать парсер XML для этой цели, но помни, что какие только Васи Пупкины не пишут в Интернете. Поэтому готовься к незакрытым тегам, значениям атрибутов без кавычек и т.д.
Именно поэтому я бы советовал использовать (если это возможно) бравузер+javascript+jQuery, т.к. парсер DOM браузера уже готов к таким сюрпризам. Не надо за него изобретать велосипед.

Вообще если не секрет какое назначение программы? "На один раз"? Дистрибьюция?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (24.07.2012)
Старый 24.07.2012, 18:00   #18
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: URL в теле страницы

Сообщение от ABTOMAT Посмотреть сообщение
Вообще если не секрет какое назначение программы? "На один раз"? Дистрибьюция?
Пишу пока чисто для себя. В прошлом несколько раз приходилось писать такие приложения, но там я примерно представлял как выглядит ссылка и её окружение (писалось для взаимодействия с конкретным сайтом). Писалось "на один раз": повзаимодействоали n часов - и достаточно. Потому писалось весьма хардкодно.
Хотелось бы на потенциальное будущее иметь возможность пропарсить страницу на ссылки, а затем отобрать нужные по маске или регэкспом.
Вот.
Но, видать, овчинка выделки не стоит.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 24.07.2012, 18:31   #19
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: URL в теле страницы

Если научишься пользоваться JS, то есть такая клёвая штука как Scratchpad в Firefox.
Там можно открыть просто страницу, открыть Scratchpad, и туда вбить какой-то скрипт, и запустить его. Таким образом он будет выполнен, без необходимости менять реальный код страницы, и вообще никто об этом не узнает, и не нужно использовать посторонних инструментов.
Данные и результаты можно от туда же выводить в консоль, или вообще кодом создать модальный элемент и туда вставить данные результат твоих махинаций, если таковые имеются.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
ABTOMAT (24.07.2012), impersonalis (24.07.2012)
Старый 24.07.2012, 18:42   #20
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: URL в теле страницы

Можно также и в консоль FireBug'а
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (24.07.2012)
Старый 24.07.2012, 18:49   #21
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: URL в теле страницы

Спасибо, но предполагалось это сделать на цпп без привлечения большого числа инструментов, тем более сторонних приложений.
Ну варианты ясны - спасибо за обзор возможностей.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 24.07.2012, 18:55   #22
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: URL в теле страницы

Кстати да, xml же:
http://www.sourceforge.net/projects/tinyxml
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (24.07.2012)
Старый 24.07.2012, 18:57   #23
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: URL в теле страницы

Импер, правой кнопкой в любом месте страницы (я знаю, ты Оператор)
Проинспектировать элемент
Справа выбери вкладку "Консоль"
Вставляй туда вот это:
var obj=document.body.getElementsByTagName("a");for(var i=0;i<obj.length;i++) {if(obj[i].getAttribute('href')) {console.log(obj[i].getAttribute('href'));}} 
Энтер

Всё. Надо ли тебе теперь изобретать велосипед - решай сам.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
impersonalis (24.07.2012), moka (24.07.2012)
Старый 24.07.2012, 19:27   #24
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: URL в теле страницы

Привлечение cpp - это уже огромный геморой с точки зрения web'а, когда в броузерах всё есть, просто заюзать нужно.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
ABTOMAT (24.07.2012), impersonalis (24.07.2012)
Старый 24.07.2012, 19:42   #25
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: URL в теле страницы

да хз. Если есть регулярки том в чём угодно можно отпарсить что угодно. Импэ, ты скажи от начала до конца что ты хочешь сотворить.

Собрать со страницы все href и названия ссылок?
тогда:
1) сокетное соединение (загаловки нагуглишь)
2) отрезаешь заголовок ответа ну иконвертишь там в нужную тебе кодировку
3) регуляришь текст
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (24.07.2012)
Старый 24.07.2012, 20:34   #26
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: URL в теле страницы

Сообщение от Randomize Посмотреть сообщение
да хз. Если есть регулярки том в чём угодно можно отпарсить что угодно. Импэ, ты скажи от начала до конца что ты хочешь сотворить.

Собрать со страницы все href и названия ссылок?
тогда:
1) сокетное соединение (загаловки нагуглишь)
2) отрезаешь заголовок ответа ну иконвертишь там в нужную тебе кодировку
3) регуляришь текст
Если нужно оффлайн это сотворить, я бы взял node.js, и замутил за 5 минут всё что нужно. Там уже всё есть для этого, никаких не нужно заголовков откидывать, с кодировками гемора никакого, плюс регулярка из коробки тоже.
Намного проще воспользоваться node чем cpp.
Плюс если нужно будет перекочевать на js на front-end'е, код из node можно будет пере использовать.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (24.07.2012)
Старый 24.07.2012, 21:12   #27
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: URL в теле страницы

Сообщение от MoKa Посмотреть сообщение
Если нужно оффлайн это сотворить, я бы взял node.js, и замутил за 5 минут всё что нужно.
Чё вы все со своим вебом то? А если импэ пишет софт, котрый показывает рекламу с некого сайта, то предлагаете полностью всю софтину на ноде переписать? Импэ сказал C++ значит C++.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (24.07.2012)
Старый 24.07.2012, 21:21   #28
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: URL в теле страницы

node - это не веб лол.
Если взять за пример который ты предложил, как раз node - это ваще проще простого.

Тупо парсишь все баннеры и картинки, и через веб-сокет выдаёшь хтмл разметку уже с выдранными данными, не нужно качать картинки (ссылки и так прямые), и куча ещё плюшек.
Так что для таких задачь, node в разы круче и удобнее чем C++.

Автор топика не сказал о конкретных потребностях, но судя по тому что это "одноразовые" использования, и не публичный софт, то следственно скорее всего автор просто занимается добычей данных с сайтов, для этого node один из первых на данную роль. Следи за тем что творить в последнее время, и вижу у тебя баттхёрты в плане node'а, или то что я что-то предлагаю?
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
ABTOMAT (24.07.2012), impersonalis (24.07.2012)
Старый 24.07.2012, 21:24   #29
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: URL в теле страницы

Всем спасибо.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 24.07.2012, 21:32   #30
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: URL в теле страницы

Сообщение от MoKa Посмотреть сообщение
Автор топика не сказал о конкретных потребностях, но судя по тому что это "одноразовые" использования, и не публичный софт, то следственно скорее всего автор просто занимается добычей данных с сайтов, для этого node один из первых на данную роль. Следи за тем что творить в последнее время, и вижу у тебя баттхёрты в плане node'а, или то что я что-то предлагаю?
Нет, просто ситуация выглядит так:

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

Нет баттхёрта от ноды. Нода малаца. Просто пойми, я тут тоже мог предложить PHP или Ruby ну или Perl. А можно и линукс поставить с wget`oм и башем. Мог предложить даже WScript. Но всё это не верные пути. Я полагаю, что топик стартеру кроме парса страницы надо будет ещё что либо (например рендер шняги в Xors3D)
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
impersonalis (25.07.2012), moka (24.07.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com