Страница: 1 | 2 | 3 |
Вопрос: html-разгребатель
Добавлено: 03.10.05 23:12
Автор вопроса: Neco | Web-сайт:
Кто что может предложить для того, чтобы выдрать полезную инфу из html страницы с учётом того, что технология должна быть достаточно гибкой, чтобы небольшие изменения страницы в будущем не сильно травмировали программёра и ест-но чтобы учитывалась разная ботва, типа наличия или отсутствия некоторых деталей на разных страницах одного рода?
Кстати, пишу то, что, кажется так и не дописали - офф-лайн форум. Тока хочу сделать его как можно более универсальным, чтобы не приходилось выпускать разные версии прог для разных форумов или, по крайней мере, без тех же мучений.
Пробовал различные способы (в основном, составление некоего скрипта, по которому будет идти распознавание страницы, но в разных формах), однако код каждый раз получается здоровый и несуразный.
Ответы
Всего ответов: 39
Номер ответа: 1
Автор ответа:
DaSharm
ICQ: 780477
Вопросов: 72
Ответов: 1297
Web-сайт:
Профиль | | #1
Добавлено: 03.10.05 23:30
Просто пиши разгребатель плагином, а когда надо будет - плаген можно будет быстро заменить на новый
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 03.10.05 23:38
Не конкретный вопрос, чтобы выдрать какое-то значение с хтмл страницы иногда достаточно что-то типа
Public Function GetText1(AllText$, LeftText$, RightText$) As String
'Возвращает текст между двумя другими текстами с двух сторон
s1 = InStr(1, AllText$, LeftText$, 1) + Len(LeftText$)
s2 = InStr(s1, AllText$, RightText$, 1)
GetText1 = Mid(AllText, s1, s2 - s1)
End Function
а бывает где нужно "аккуратно" парсить, что-то искать, из найденного что-то фильтровать, искать дальше итп... т.е. универсальный оффлайн форум написать прокатически невозможно. Другое дело написать оффлайн форум для таких как PhpBB, Invision итп... но мы блин для vbnet так и не дописали, а если ещё вспомнить как писали что уж тут про другие говорить )...
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 04.10.05 00:14
Это кто не дописал? У меня и у sne рабочие программы, все правильно отображают, клиент sne получает посты через сеть, а у меня их надо получать вручную, зато это тратит меньше траффика.
Парсинг HTML-страниц лучше всего делать через регекспы, подробнее поинтересуйся у Павла, он этим занимался по работе.
Номер ответа: 4
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #4
Добавлено: 04.10.05 00:28
Да страницу я уже распарсил и сделал из неё дерево - это не проблема и всё быстро работает. Проблема теперь из дерева выдрать данные, ведь у тебя, к примеру, в окошке слева от ответа за ником сразу идёт аська, а у Хакера ещё и "титул". Количество звёзд у всех разное, звёзды тоже разные, сайт не у всех указан и ещё куча таких мелочей, как на разных топиках разный формат отображения даты "Добавлено" - раньше было без года, а теперь с ним.
Как?!!
Номер ответа: 5
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #5
Добавлено: 04.10.05 06:26
Я уж грешным делом подумал что синтаксическое дерево
Номер ответа: 6
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #6
Добавлено: 04.10.05 07:48
Угу, красно-черное сбалансированное B-дерево
Не вижу смысла парсить страницу, это ведь не уменьшает траффик. Юзай веб-сервис для оффлайн-клиентов.
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 04.10.05 14:17
во во... а веб сервисы не у каждого форума есть! Поэтому что-то универсальное неполучится
Номер ответа: 8
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #8
Добавлено: 05.10.05 07:31
а где взять протокол сервиса?
Номер ответа: 9
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #9
Добавлено: 05.10.05 18:51
http://vbnet.ru/offline.asmx
Номер ответа: 10
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #10
Добавлено: 06.10.05 00:39
Тормозит чего-то жутко...
А у вас?
Номер ответа: 11
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #11
Добавлено: 06.10.05 10:30
все нормально, ты лучше чем изобретать велосипед - подмогни... лично мне осталось только написать хранение и отправку сообщений на форум, и все!
Номер ответа: 12
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #12
Добавлено: 06.10.05 18:13
Ага, а потом переделать все с нуля под новые задумки Павла
Номер ответа: 13
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #13
Добавлено: 06.10.05 20:26
надеемся что Павел с новым сайтом вб.нет протокол оставит старый
Номер ответа: 14
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #14
Добавлено: 06.10.05 22:14
Он лично сказал, что поменяет.
Номер ответа: 15
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #15
Добавлено: 07.10.05 10:47
2Sharp, ты же вкурсе моих идей Как думаешь останется-ли протокол таким как он есть сейчас ? Глупый вопрос )