Регистрация  |  Вход

Apex Parse HTML

Есть что-то готовое для расинга html?

Есть что-то готовое для расинга html?

А Dom класс (вернее Document)
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_dom_document.htm
не подойдет?
Ведь html это подмножество xml.

А Dom класс (вернее Document)
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_dom_document.htm
не подойдет?
Ведь html это подмножество xml.

Dmitry Shnyrev
А Dom класс (вернее Document)
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_dom_document.htm
не подойдет?
Ведь html это подмножество xml.

На счет подмножества не уверен.
Т.к. xml строже.

[quote="Dmitry Shnyrev"]А Dom класс (вернее Document)
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_dom_document.htm
не подойдет?
Ведь html это подмножество xml.[/quote]
На счет подмножества не уверен. 
Т.к. xml строже.

Dmitry Shnyrev
А Dom класс (вернее Document)
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_dom_document.htm
не подойдет?
Ведь html это подмножество xml.

А верстка то еще и кривой бывает, так что нет.

[quote="Dmitry Shnyrev"]А Dom класс (вернее Document)
https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_xml_dom_document.htm
не подойдет?
Ведь html это подмножество xml.[/quote]
А верстка то еще и кривой бывает, так что нет.

Ну да, бывает. Тогда только внешний сервис свой сделать. С нормальным парсером, чтобы парсил и результаты уже возвращал.

Ну да, бывает. Тогда только внешний сервис свой сделать. С нормальным парсером, чтобы парсил и результаты уже возвращал.

Dmitry Shnyrev
Ну да, бывает. Тогда только внешний сервис свой сделать. С нормальным парсером, чтобы парсил и результаты уже возвращал.

я в java пользовался jsoup

[quote="Dmitry Shnyrev"]Ну да, бывает. Тогда только внешний сервис свой сделать. С нормальным парсером, чтобы парсил и результаты уже возвращал.[/quote]
я в java пользовался jsoup

Ну я думаю что парсеры найдутся везде и это уже зависит от предпочтений Gres на чем поднимать web service

Ну я думаю что парсеры найдутся везде и это уже зависит от предпочтений Gres на чем поднимать web service :D 

RasMisha
я в java пользовался jsoup

Я тоже, но для андройда. Прикольная штукенция. Работаешь с html как с jquery

[quote="RasMisha"]я в java пользовался jsoup[/quote]
Я тоже, но для андройда. Прикольная штукенция. Работаешь с html как с jquery

DevNull
Я тоже, но для андройда. Прикольная штукенция. Работаешь с html как с jquery

хех, ну я же не сказал, что в ентерпрайзе
Опыт тоже был именно на android.

[quote="DevNull"] Я тоже, но для андройда. Прикольная штукенция. Работаешь с html как с jquery[/quote]
хех, ну я же не сказал, что в ентерпрайзе
Опыт тоже был именно на android.

DevNull
Работаешь с html как с jquery

А XPath не пробовал?

[quote="DevNull"]Работаешь с html как с jquery[/quote]
А [url=https://ru.wikipedia.org/wiki/XPath]XPath[/url] не пробовал?

Dmitry Shnyrev
Ну я думаю что парсеры найдутся везде и это уже зависит от предпочтений Gres на чем поднимать web service :D

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

[quote="Dmitry Shnyrev"]Ну я думаю что парсеры найдутся везде и это уже зависит от предпочтений Gres на чем поднимать web service :D[/quote]
Не считаю задачу настолько сложной, чтобы поднимать сервис для этого.
Думал, может уже кто-то реализовывал парсер на Apex.

Gres
Не считаю задачу настолько сложной

Ты хочешь сказать что задача парсить невалидный html не сложная?
Ну понятно что в любом конкретном случае разобрать страницу не сложно, но написать полноценный парсер на все случаи жизни, я думаю, не такая уж простая задача.

[quote="Gres"]Не считаю задачу настолько сложной[/quote]
Ты хочешь сказать что задача парсить невалидный html не сложная?
Ну понятно что в любом конкретном случае разобрать страницу не сложно, но написать полноценный парсер на все случаи жизни, я думаю, не такая уж простая задача.

Dmitry Shnyrev
Ты хочешь сказать что задача парсить невалидный html не сложная?
Ну понятно что в любом конкретном случае разобрать страницу не сложно, но написать полноценный парсер на все случаи жизни, я думаю, не такая уж простая задача.

Видимо у нас разные понятия о сложности)

[quote="Dmitry Shnyrev"]Ты хочешь сказать что задача парсить невалидный html не сложная?
Ну понятно что в любом конкретном случае разобрать страницу не сложно, но написать полноценный парсер на все случаи жизни, я думаю, не такая уж простая задача.[/quote]
Видимо у нас разные понятия о сложности)

Подожди, я что-то не могу понять мы про одно и тоже говорим?
Ты спрашиваешь как на SF разбирать невалидный|битый|malformed HTML?
Т.е. иметь такой парсер который возьмет на вход неправильный HTML, переварит его и позволит перемещаться используя какой-нибудь язык запросов?
И ты говоришь что это не сложно?
Я не думаю, что в браузерах (чья это основная работа - разбирать html) и в таких проектах как HTML TIDY а также парсерах с многолетней историей на этот вопрос отводится пара строчек кода.
Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.

Подожди, я что-то не могу понять мы про одно и тоже говорим?
Ты спрашиваешь как на SF разбирать невалидный|битый|malformed HTML?
Т.е. иметь такой парсер который возьмет на вход неправильный HTML, переварит его и позволит перемещаться используя какой-нибудь язык запросов?
И ты говоришь что это не сложно?
Я не думаю, что в браузерах (чья это основная работа - разбирать html) и в таких проектах как [url=http://www.w3.org/People/Raggett/tidy/]HTML TIDY[/url] а также парсерах с многолетней историей на этот вопрос отводится пара строчек кода.
Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.

Dmitry Shnyrev
Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.

Как и задача по работе с ZIP архивами Хотя даже на JS есть возсожность вполне комфортно работать.

[quote="Dmitry Shnyrev"]Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.[/quote]

Как и задача по работе с ZIP архивами :) Хотя даже на JS есть возсожность вполне комфортно работать.

Dmitry Shnyrev
Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.

сложность != трудозатратность

[quote="Dmitry Shnyrev"]Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.[/quote]
сложность != трудозатратность

А что от этого парсера требуется? Старых добрых регулярных выражений не хватит?

wilder
Dmitry Shnyrev
Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.

Как и задача по работе с ZIP архивами Хотя даже на JS есть возсожность вполне комфортно работать.


С ZIP архивами, думаю, всё проще - чуть где отступили от протокола - знай себе вываливай ошибку file corrupted или ещё чего, а тут надо умудриться невалидный HTML распарсить.

Gres
А верстка то еще и кривой бывает, так что нет.

Ну а тут, если прям уж кровь из носа нельзя последовать принципу "garbage in - garbage out", лично я бы сделал финт ушами - нормировал невалидный HTML, т.е. сделал его валидным (вероятно в реализованных парсерах так и поступают), а уже валидный HTML скормил бы XML-парсеру, как и предлагал Дмитрий.

А что от этого парсера требуется? Старых добрых регулярных выражений не хватит?

[quote="wilder"][quote="Dmitry Shnyrev"]Да, я думаю что эта задача МЕГА сложная и поэтому на SF до сих пор нет таких парсеров.[/quote]

Как и задача по работе с ZIP архивами :) Хотя даже на JS есть возсожность вполне комфортно работать.[/quote]
С ZIP архивами, думаю, всё проще - чуть где отступили от протокола - знай себе вываливай ошибку file corrupted или ещё чего, а тут надо умудриться невалидный HTML распарсить.

[quote="Gres"]А верстка то еще и кривой бывает, так что нет.[/quote]
Ну а тут, если прям уж кровь из носа нельзя последовать принципу "garbage in - garbage out", лично я бы сделал финт ушами - нормировал невалидный HTML, т.е. сделал его валидным (вероятно в реализованных парсерах так и поступают), а уже валидный HTML скормил бы XML-парсеру, как и предлагал Дмитрий.

ilya leshchuk
Старых добрых регулярных выражений не хватит?

Лучше уж старый добрый indexOf, который еще и быстрее.
ilya leshchuk
А что от этого парсера требуется?

Абстракция высокого уровня)

[quote="ilya leshchuk"]Старых добрых регулярных выражений не хватит?[/quote]
Лучше уж старый добрый indexOf, который еще и быстрее.
[quote="ilya leshchuk"]А что от этого парсера требуется? [/quote]
Абстракция высокого уровня)

ilya leshchuk
валидный HTML скормил бы XML-парсеру

Далеко не всегда сработает.

[quote="ilya leshchuk"]валидный HTML скормил бы XML-парсеру[/quote]
Далеко не всегда сработает.

Gres
ilya leshchuk
Старых добрых регулярных выражений не хватит?

Лучше уж старый добрый indexOf, который еще и быстрее.

Ну indexOf это уже для самых тривиальных задач.


Gres
ilya leshchuk
А что от этого парсера требуется?

Абстракция высокого уровня)

Это уж слишком абстрактное описание :

Gres
ilya leshchuk
валидный HTML скормил бы XML-парсеру

Далеко не всегда сработает.

Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.

[quote="Gres"][quote="ilya leshchuk"]Старых добрых регулярных выражений не хватит?[/quote]
Лучше уж старый добрый indexOf, который еще и быстрее.[/quote]

Ну indexOf это уже для самых тривиальных задач.


[quote="Gres"][quote="ilya leshchuk"]А что от этого парсера требуется? [/quote]
Абстракция высокого уровня)[/quote]
Это уж слишком абстрактное описание :

[quote="Gres"][quote="ilya leshchuk"]валидный HTML скормил бы XML-парсеру[/quote]
Далеко не всегда сработает.[/quote]
Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.

ilya leshchuk
Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.

А это будет самая сложная задача

ilya leshchuk
Ну indexOf это уже для самых тривиальных задач.

Видимо, ты просто не умеешь им пользоваться)

ilya leshchuk
Это уж слишком абстрактное описание :

А что абстрактного в абстракции над html страничкой?

[quote="ilya leshchuk"]Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.[/quote]
А это будет самая сложная задача

[quote="ilya leshchuk"]Ну indexOf это уже для самых тривиальных задач.[/quote]
Видимо, ты просто не умеешь им пользоваться)

[quote="ilya leshchuk"]Это уж слишком абстрактное описание :[/quote]
А что абстрактного в абстракции над html страничкой?

Gres
ilya leshchuk
Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.

А это будет самая сложная задача

Возможно, хотя есть идеи, которые кажутся достаточно просто реализуемыми.

Gres
ilya leshchuk
Ну indexOf это уже для самых тривиальных задач.

Видимо, ты просто не умеешь им пользоваться)

- Вы не любите кошек?! Да вы не умеете их готовить...
Всякий инструмент под свою задачу - где-то indexOf лучше подойдёт, где-то без regexp'ов не обойтись.

Gres
ilya leshchuk
Это уж слишком абстрактное описание :

А что абстрактного в абстракции над html страничкой?

К примеру парсеры разные бывают - SAX, DOM. Я оберну HTML в класс со стринговым полем, добавлю ему возможность искать по регулярным выражениям и это уже будет абстракция более высокого чем String порядка, но вряд ли это будет именно то что требуется.

[quote="Gres"][quote="ilya leshchuk"]Имелось в виду нормировать его до такой степени, чтобы XML-парсер мог нормально работать.[/quote]
А это будет самая сложная задача
[/quote]
Возможно, хотя есть идеи, которые кажутся достаточно просто реализуемыми.

[quote="Gres"][quote="ilya leshchuk"]Ну indexOf это уже для самых тривиальных задач.[/quote]
Видимо, ты просто не умеешь им пользоваться)[/quote]
- Вы не любите кошек?! Да вы не умеете их готовить...
Всякий инструмент под свою задачу - где-то indexOf лучше подойдёт, где-то без regexp'ов не обойтись.

[quote="Gres"][quote="ilya leshchuk"]Это уж слишком абстрактное описание :[/quote]
А что абстрактного в абстракции над html страничкой?[/quote]
К примеру парсеры разные бывают - SAX, DOM. Я оберну HTML в класс со стринговым полем, добавлю ему возможность искать по регулярным выражениям и это уже будет абстракция более высокого чем String порядка, но вряд ли это будет именно то что требуется.