|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
Всем доброго времени суток! Поставили задачу - автоматизировать копирование данных с сайтов в программу. На сколько правильным является такое решение ? К рискам и сложностям я могу отнести только изменение структуры сайта web-программистами. Какие еще аргументы можно привести, чтобы опровергнуть такую задачу? Есть у кого-нибудь опыт поддержки такой автоматизации? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2006, 15:43 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
Если сайт "дружественный" -- можно попросить предоставлять данные в XML. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2006, 16:17 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
DocAlЕсли сайт "дружественный" -- можно попросить предоставлять данные в XML. Сайт не дружественный. RSS, XML-сервисы отсутствуют. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2006, 16:36 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
Ну, в общем-то, сделать-то работы на полчаса, просто предупредите, что дальнейшая работоспособность этого модуля зависит не от вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2006, 16:51 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
авторПоставили задачу - автоматизировать копирование данных с сайтов в программу. Решается несложно с помощью регулярных выражений. Конкретнее - зависит от специфики вытягиваемой информации. Такую вытягивалку необходимо постоянно сопровождать, ибо верстка может меняться. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2006, 09:03 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
Мне кажется более устойчивый к изменению верстки и более простой в сопровождении результат можно получить следующим образом: 1) прогонять страницу через tidy, получая на выходе валидный XML 2) обрабатывать его выражениями XPath, например при помощи xsltproc Такая программа будет конечно не самой быстрой, зато производительность разработчика будет на высоте. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2006, 15:07 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
авторМне кажется более устойчивый к изменению верстки и более простой в сопровождении результат можно получить следующим образом: мне кажется, что это принципиально ничем не отличается от авторРешается несложно с помощью регулярных выражений. т.к. авторТакую вытягивалку необходимо постоянно сопровождать, ибо верстка может меняться. Со сменой дизайна регэкспы станут стольже невалидны, как и пути XPath. авторзато производительность разработчика будет на высоте Не очень понял, что за производительность имеется в виду? :( ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2006, 17:22 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
Я работал и с регэкспами, и с XPath -- второй на порядок прозрачнее. В первом случае мы изначально получаем очень "хрупкий" код, который плохо выдерживает добавление заплат. Мелкие изменения верстки tidy будет нивелировать, поэтому менять код понадобится реже. Принципиально подход не отличается, просто немного технологичнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2006, 17:29 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
авторВ первом случае мы изначально получаем очень "хрупкий" код, который плохо выдерживает добавление заплат. Мелкие изменения верстки tidy будет нивелировать Гм.. А не могли бы вы привести пример, когда XPath выдержит изменение html-кода, а регэксп - не выдержит? Мне все-таки кажется, что технологии одинаковой устойчивости в рамках данной задачи. авторПринципиально подход не отличается, просто немного технологичнее. Пожалуй-таки соглашусь. Выделяя слово "немного" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2006, 18:13 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
На XPath/XSL можно писать сложные и хорошо структурированные выражения типа "второе слово третьего абзаца ячейки таблицы на пересечении столбца 'цена' и строки 'алюминий' в разделе страницы с названием 'состояние склада'". Причем выражения получаются компактными и относительно (по сравнению с regexp) понятными. А regexp привязывается к локальному контексту, и в этом я вижу его слабость. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 12:03 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
авторНа XPath/XSL можно писать сложные и хорошо структурированные выражения типа "второе слово третьего абзаца ячейки таблицы на пересечении столбца 'цена' и строки 'алюминий' в разделе страницы с названием 'состояние склада'". Вы правы АБ, но и регэкспы работают именно так, как вы описали для XPath. авторПричем выражения получаются компактными и относительно (по сравнению с regexp) понятными. Согласен. И как говорил ранее: выделяя слово "немного" :) авторА regexp привязывается к локальному контексту, и в этом я вижу его слабость. Не очень понял, поясните пожалуйста. И насчет авторзато производительность разработчика будет на высоте тоже непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 12:45 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
Ну елы-палы! Работать с веб-страницей как с иерархической структурой или как со строкой - есть разница? В regexp нет, например, готовых средств, позволяющих увязать открывающий тэг с закрывающим. В частных случаях это сделать можно (а в тривиальных и вовсе не требуется), но в общем случае - замучаетесь. regexp - это уровень лексического анализатора, для разбора грамматики он не предназначен (если Вы понимаете о чем я). А на XPath/XSLT можно анализировать и грамматические конструкции, и отдельные лексемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 12:56 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
авторНу елы-палы! Работать с веб-страницей как с иерархической структурой или как со строкой - есть разница? А как быть в случаях с кривой версткой? Не всегда верстка соответствует стандартам. Не верите? Заходим на http://validator.w3.org/ и просим проверить mail.ru. Видим 437ошибок и среди них смотрим на вторую: Line 30 column 6: end tag for element "HEAD" which is not open. Справедливости ради отметим, что на странице открыающийся HEAD все-таки присутствует, видимо проблема в том, что находится внутри его. Однако есть подозрение, что XPath-парсер тоже захочет соответсвия стандарту.? И кроме того, найдутся и такие страницы, где будут грубые ошибки, допущенные студентами-фрилансерами. авторВ regexp нет, например, готовых средств, позволяющих увязать открывающий тэг с закрывающим. Согласен, нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 13:52 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
CalmА как быть в случаях с кривой версткой? Так для этого как раз и нужен tidy. По моему опыту, он неплохо справляется с разбором кривой верстки - догадывается где чего накосячили и делает из г..на конфетку в виде валитного XML. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 13:55 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
авторНу елы-палы! Я кстати не оспариваю вашего решения и согласен с ним. Просто из любопытства хочется узнать о том, насколько применение XPath упростит задачу по сравнению с регэспами. С уважением. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 13:56 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
На главной странице mail.ru tidy находит 20 ошибок и 260 варнингов (наверное действительно без студентов не обошлось). Но все же как-то ее прорубает, правда не без подсказок в виде опций: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 14:29 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
АБНа главной странице mail.ru tidy находит 20 ошибок и 260 варнингов (наверное действительно без студентов не обошлось). Но все же как-то ее прорубает, правда не без подсказок в виде опций: Код: plaintext 1. 2. 3. 4. 5.
А теперь прошу пояснить, что за звери такие XPath , регэкспы , tidy ? и что из них все таки эффективнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 15:18 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
flashslashА теперь прошу пояснить, что за звери такие... у как все запущено :) что, гугль уже совсем ничего не находит? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 15:22 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
АБ flashslashА теперь прошу пояснить, что за звери такие... у как все запущено :) что, гугль уже совсем ничего не находит? не думайте, что разбираясь в одной задаче стали большим. Это заблуждение! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 15:27 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
Коллега, вам указали тропу по которой стоит идти. Это на самом деле самое ценное, потому что выбор неправильной тропы может стоить очень дорого. Но не ожидаете ли вы, что кто-то возьмет вас за руку и проведет по этой тропе? Ключевые слова есть - ищите, разбирайтесь, в случае затруднений задавайте конкретные вопросы. А мой рост пусть вас не беспокоит. Успехов! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 15:33 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
АБКоллега, вам указали тропу по которой стоит идти. Это на самом деле самое ценное, потому что выбор неправильной тропы может стоить очень дорого. Но не ожидаете ли вы, что кто-то возьмет вас за руку и проведет по этой тропе? Ключевые слова есть - ищите, разбирайтесь, в случае затруднений задавайте конкретные вопросы. А мой рост пусть вас не беспокоит. Успехов! Все это конечно интересно. Но мой вопрос заключался не в выборе методов решения, а в поиске аргументов, чтобы не решать задачу вообще. Потому что копируем не текст, а цифры. И цена ошибки высока. Если этому можно серьезно возразить, то пожалуйста. Я готов выслушать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 15:49 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
По моему тут народ как-то больше ориентирован на то, чтобы задачи решать. Если же вам нужна помощь в том, чтобы не решать, то может вам лучше по другому адресу обратиться? В госдуму, например :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 16:06 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
АБПо моему тут народ как-то больше ориентирован на то, чтобы задачи решать. Если же вам нужна помощь в том, чтобы не решать, то может вам лучше по другому адресу обратиться? В госдуму, например :) остроумно :), хотя, согласно вашей теории о выборе правильного пути от решения задачи стоит отказаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 16:15 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
авторНо мой вопрос заключался не в выборе методов решения, а в поиске аргументов, чтобы не решать задачу вообще. А разве это не ответ на ваш вопрос: авторИ цена ошибки высока. ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 16:46 |
|
анализ HTML-кода
|
|||
---|---|---|---|
#18+
flashslashВсе это конечно интересно. Но мой вопрос заключался не в выборе методов решения, а в поиске аргументов, чтобы не решать задачу вообще. Потому что копируем не текст, а цифры. И цена ошибки высока. Если этому можно серьезно возразить, то пожалуйста. Я готов выслушать. На всякий аргумент в данном случае найдётся контраргумент. С технической точки зрения ты всегда сможешь написать программу, которая хотя бы один раз загрузит нужные данные. ИМХО, этого достаточно. Другое дело, что данные могут быть изначально недостоверными (но большие отклонения обычно легко выявляются, а малые не наносят большого ущерба), наконец результат может проконтролировать человек. Поддержка такой программы (например регулярная доработка в ответ на изменение структуры html документа) може оказаться слишком дорогой, но это уж как сделаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2006, 18:01 |
|
|
start [/forum/topic.php?fid=33&msg=34003047&tid=1549298]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 246ms |
total: | 483ms |
0 / 0 |