Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / анализ HTML-кода / 25 сообщений из 35, страница 1 из 2
19.09.2006, 15:43
    #33997131
flashslash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
Всем доброго времени суток!

Поставили задачу - автоматизировать копирование данных с сайтов в программу. На сколько правильным является такое решение ?

К рискам и сложностям я могу отнести только изменение структуры сайта web-программистами.
Какие еще аргументы можно привести, чтобы опровергнуть такую задачу?
Есть у кого-нибудь опыт поддержки такой автоматизации?
...
Рейтинг: 0 / 0
19.09.2006, 16:17
    #33997293
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
Если сайт "дружественный" -- можно попросить предоставлять данные в XML.
...
Рейтинг: 0 / 0
19.09.2006, 16:36
    #33997396
flashslash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
DocAlЕсли сайт "дружественный" -- можно попросить предоставлять данные в XML.

Сайт не дружественный.
RSS, XML-сервисы отсутствуют.
...
Рейтинг: 0 / 0
19.09.2006, 16:51
    #33997456
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
Ну, в общем-то, сделать-то работы на полчаса, просто предупредите, что дальнейшая работоспособность этого модуля зависит не от вас.
...
Рейтинг: 0 / 0
20.09.2006, 09:03
    #33998503
Calm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
авторПоставили задачу - автоматизировать копирование данных с сайтов в программу.

Решается несложно с помощью регулярных выражений. Конкретнее - зависит от специфики вытягиваемой информации.
Такую вытягивалку необходимо постоянно сопровождать, ибо верстка может меняться.
...
Рейтинг: 0 / 0
20.09.2006, 15:07
    #34000105
АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
Мне кажется более устойчивый к изменению верстки и более простой в сопровождении результат можно получить следующим образом:
1) прогонять страницу через tidy, получая на выходе валидный XML
2) обрабатывать его выражениями XPath, например при помощи xsltproc
Такая программа будет конечно не самой быстрой, зато производительность разработчика будет на высоте.
...
Рейтинг: 0 / 0
20.09.2006, 17:22
    #34000764
Calm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
авторМне кажется более устойчивый к изменению верстки и более простой в сопровождении результат можно получить следующим образом:

мне кажется, что это принципиально ничем не отличается от

авторРешается несложно с помощью регулярных выражений.

т.к.

авторТакую вытягивалку необходимо постоянно сопровождать, ибо верстка может меняться.

Со сменой дизайна регэкспы станут стольже невалидны, как и пути XPath.

авторзато производительность разработчика будет на высоте
Не очень понял, что за производительность имеется в виду? :(
...
Рейтинг: 0 / 0
20.09.2006, 17:29
    #34000795
АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
Я работал и с регэкспами, и с XPath -- второй на порядок прозрачнее. В первом случае мы изначально получаем очень "хрупкий" код, который плохо выдерживает добавление заплат. Мелкие изменения верстки tidy будет нивелировать, поэтому менять код понадобится реже. Принципиально подход не отличается, просто немного технологичнее.
...
Рейтинг: 0 / 0
20.09.2006, 18:13
    #34000959
Calm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
авторВ первом случае мы изначально получаем очень "хрупкий" код, который плохо выдерживает добавление заплат. Мелкие изменения верстки tidy будет нивелировать

Гм.. А не могли бы вы привести пример, когда XPath выдержит изменение html-кода, а регэксп - не выдержит? Мне все-таки кажется, что технологии одинаковой устойчивости в рамках данной задачи.

авторПринципиально подход не отличается, просто немного технологичнее.
Пожалуй-таки соглашусь. Выделяя слово "немного" :)
...
Рейтинг: 0 / 0
21.09.2006, 12:03
    #34002487
АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
На XPath/XSL можно писать сложные и хорошо структурированные выражения типа "второе слово третьего абзаца ячейки таблицы на пересечении столбца 'цена' и строки 'алюминий' в разделе страницы с названием 'состояние склада'". Причем выражения получаются компактными и относительно (по сравнению с regexp) понятными. А regexp привязывается к локальному контексту, и в этом я вижу его слабость.
...
Рейтинг: 0 / 0
21.09.2006, 12:45
    #34002724
Calm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
авторНа XPath/XSL можно писать сложные и хорошо структурированные выражения типа "второе слово третьего абзаца ячейки таблицы на пересечении столбца 'цена' и строки 'алюминий' в разделе страницы с названием 'состояние склада'".
Вы правы АБ, но и регэкспы работают именно так, как вы описали для XPath.

авторПричем выражения получаются компактными и относительно (по сравнению с regexp) понятными.
Согласен. И как говорил ранее: выделяя слово "немного" :)


авторА regexp привязывается к локальному контексту, и в этом я вижу его слабость.
Не очень понял, поясните пожалуйста.
И насчет
авторзато производительность разработчика будет на высоте
тоже непонятно.
...
Рейтинг: 0 / 0
21.09.2006, 12:56
    #34002762
АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
Ну елы-палы! Работать с веб-страницей как с иерархической структурой или как со строкой - есть разница? В regexp нет, например, готовых средств, позволяющих увязать открывающий тэг с закрывающим. В частных случаях это сделать можно (а в тривиальных и вовсе не требуется), но в общем случае - замучаетесь. regexp - это уровень лексического анализатора, для разбора грамматики он не предназначен (если Вы понимаете о чем я). А на XPath/XSLT можно анализировать и грамматические конструкции, и отдельные лексемы.
...
Рейтинг: 0 / 0
21.09.2006, 13:52
    #34003047
Calm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
авторНу елы-палы! Работать с веб-страницей как с иерархической структурой или как со строкой - есть разница?

А как быть в случаях с кривой версткой? Не всегда верстка соответствует стандартам. Не верите?
Заходим на http://validator.w3.org/ и просим проверить mail.ru.
Видим 437ошибок и среди них смотрим на вторую:
Line 30 column 6: end tag for element "HEAD" which is not open.
Справедливости ради отметим, что на странице открыающийся HEAD все-таки присутствует, видимо проблема в том, что находится внутри его.
Однако есть подозрение, что XPath-парсер тоже захочет соответсвия стандарту.?

И кроме того, найдутся и такие страницы, где будут грубые ошибки, допущенные студентами-фрилансерами.

авторВ regexp нет, например, готовых средств, позволяющих увязать открывающий тэг с закрывающим.
Согласен, нет.
...
Рейтинг: 0 / 0
21.09.2006, 13:55
    #34003064
АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
CalmА как быть в случаях с кривой версткой? Так для этого как раз и нужен tidy. По моему опыту, он неплохо справляется с разбором кривой верстки - догадывается где чего накосячили и делает из г..на конфетку в виде валитного XML.
...
Рейтинг: 0 / 0
21.09.2006, 13:56
    #34003074
Calm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
авторНу елы-палы!
Я кстати не оспариваю вашего решения и согласен с ним.

Просто из любопытства хочется узнать о том, насколько применение XPath упростит задачу по сравнению с регэспами.

С уважением.
...
Рейтинг: 0 / 0
21.09.2006, 14:29
    #34003223
АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
На главной странице mail.ru tidy находит 20 ошибок и 260 варнингов (наверное действительно без студентов не обошлось). Но все же как-то ее прорубает, правда не без подсказок в виде опций:
Код: plaintext
1.
2.
3.
4.
5.
output-xml:  1 
quiet:  1 
force-output:  1 
show-errors:  0 
show-warnings:  0 
output-encoding: raw
В выходном файле надо подправить xml-декларацию в первой строке.
...
Рейтинг: 0 / 0
21.09.2006, 15:18
    #34003477
flashslash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
АБНа главной странице mail.ru tidy находит 20 ошибок и 260 варнингов (наверное действительно без студентов не обошлось). Но все же как-то ее прорубает, правда не без подсказок в виде опций:
Код: plaintext
1.
2.
3.
4.
5.
output-xml:  1 
quiet:  1 
force-output:  1 
show-errors:  0 
show-warnings:  0 
output-encoding: raw
В выходном файле надо подправить xml-декларацию в первой строке.

А теперь прошу пояснить, что за звери такие
XPath , регэкспы , tidy ? и что из них все таки эффективнее?
...
Рейтинг: 0 / 0
21.09.2006, 15:22
    #34003502
АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
flashslashА теперь прошу пояснить, что за звери такие... у как все запущено :) что, гугль уже совсем ничего не находит?
...
Рейтинг: 0 / 0
21.09.2006, 15:27
    #34003531
flashslash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
АБ flashslashА теперь прошу пояснить, что за звери такие... у как все запущено :) что, гугль уже совсем ничего не находит?

не думайте, что разбираясь в одной задаче стали большим. Это заблуждение!
...
Рейтинг: 0 / 0
21.09.2006, 15:33
    #34003559
АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
Коллега, вам указали тропу по которой стоит идти. Это на самом деле самое ценное, потому что выбор неправильной тропы может стоить очень дорого. Но не ожидаете ли вы, что кто-то возьмет вас за руку и проведет по этой тропе? Ключевые слова есть - ищите, разбирайтесь, в случае затруднений задавайте конкретные вопросы. А мой рост пусть вас не беспокоит. Успехов!
...
Рейтинг: 0 / 0
21.09.2006, 15:49
    #34003662
flashslash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
АБКоллега, вам указали тропу по которой стоит идти. Это на самом деле самое ценное, потому что выбор неправильной тропы может стоить очень дорого. Но не ожидаете ли вы, что кто-то возьмет вас за руку и проведет по этой тропе? Ключевые слова есть - ищите, разбирайтесь, в случае затруднений задавайте конкретные вопросы. А мой рост пусть вас не беспокоит. Успехов!

Все это конечно интересно. Но мой вопрос заключался не в выборе методов решения, а в поиске аргументов, чтобы не решать задачу вообще. Потому что копируем не текст, а цифры. И цена ошибки высока.
Если этому можно серьезно возразить, то пожалуйста. Я готов выслушать.
...
Рейтинг: 0 / 0
21.09.2006, 16:06
    #34003769
АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
По моему тут народ как-то больше ориентирован на то, чтобы задачи решать. Если же вам нужна помощь в том, чтобы не решать, то может вам лучше по другому адресу обратиться? В госдуму, например :)
...
Рейтинг: 0 / 0
21.09.2006, 16:15
    #34003828
flashslash
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
АБПо моему тут народ как-то больше ориентирован на то, чтобы задачи решать. Если же вам нужна помощь в том, чтобы не решать, то может вам лучше по другому адресу обратиться? В госдуму, например :)

остроумно :), хотя, согласно вашей теории о выборе правильного пути от решения задачи стоит отказаться.
...
Рейтинг: 0 / 0
21.09.2006, 16:46
    #34003941
Calm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
авторНо мой вопрос заключался не в выборе методов решения, а в поиске аргументов, чтобы не решать задачу вообще.

А разве это не ответ на ваш вопрос:
авторИ цена ошибки высока.

??
...
Рейтинг: 0 / 0
21.09.2006, 18:01
    #34004182
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
анализ HTML-кода
flashslashВсе это конечно интересно. Но мой вопрос заключался не в выборе методов решения, а в поиске аргументов, чтобы не решать задачу вообще. Потому что копируем не текст, а цифры. И цена ошибки высока.
Если этому можно серьезно возразить, то пожалуйста. Я готов выслушать.

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

Другое дело, что данные могут быть изначально недостоверными (но большие отклонения обычно легко выявляются, а малые не наносят большого ущерба), наконец результат может проконтролировать человек. Поддержка такой программы (например регулярная доработка в ответ на изменение структуры html документа) може оказаться слишком дорогой, но это уж как сделаешь.
...
Рейтинг: 0 / 0
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / анализ HTML-кода / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]