Про HTML-парсинг есть что нового?

Как сейчас обстоят дела с HTML-парсингом? Смотрю для автоматизации запросов набрал популярность Selenium WebDriver. С помощью плагина для FF последовательность запросов можно генерить автоматом.

А вот с парсингом сложнее -- xPath выражения нужно писать вручную. К примеру, если хочется сохранить таблицу с постраничной разбивкой -- уже не так просто.

Вроде встречал более удобные инструменты с визальной конфигурацией. Выбираешь нужный элемент а прога генерить xPath сама. Но сейчас ничего найти не могу.

Кто может порекомендовать?
  • Вопрос задан
  • 1287 просмотров
Пригласить эксперта
Ответы на вопрос 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
xPath выражения нужно писать вручную

Css селекторы легче
Для php https://github.com/olamedia/nokogiri
Для прочих языков нагуглить аналоги тоже не проблема.
Ответ написан
@VZVZ
Reverse-Engineer, Software Developer, Architect
> Смотрю для автоматизации запросов набрал популярность Selenium WebDriver.
Мне больше PhantomJS нравится.
А еще вариант с голыми HTTP-запросами, когда берут сниффер вроде Fiddler, отслеживают запросы и затем на ЯП их имитируют. Под виндой обычно для этого берут C#.
Это требует больших усилий в плане устойчивости к распознаванию бота серваком, и может быть не столь стабильно к изменениям на серваке, зато быстродействие + не надо ничего левого на комп ставить + запросы можно делать из любого привычного ЯП без костылей.

Не нужно пытаться все слишком упростить.
Во многих отраслях есть 2 возможности. Можно быть спецом, знать все изнутри, применять средства разных уровней. А можно только уметь тыкать кнопочки, записывать макросы и т.д., т.е. только уметь пользоваться готовыми сверхвысокоуровневыми средствами.
Так вот, со вторым подходом далеко не уедешь.
Это ни в коей мере не означает, что спец всегда все делает по хардкору, пишет на асме и т.д. Реальные спецы тоже любят удобство, качество, абстракцию и т.д. И ведь если нужного простого сверхвысокоуровневого средства просто не существует под его задачи, то как раз спец может сам его написать (как говорят, "дай человеку необходимое - он захочет комфорта"), а что тогда сделает дилетант, нахватавшийся вершков и умеющий только готовым пользоваться? Ничего.

> А вот с парсингом сложнее -- xPath выражения нужно писать вручную
Вы вообще о чем?
Откуда вы хотите парсить HTML?
Не знаю, как Selenium, но из бота на PhantomJS доступны все возможности JavaScriptовского DOM API.
А для C# есть хорошая библиотека AngleSharp, для парсинга HTML и CSS, где есть не только GetElementById, но и по классу, по тэгу, по CSS-селекторам и вообще вроде все то же, что и в стандарте DOM. Правда, работает медленнее, чем привычный HtmlAgilityPack (в котором все кроме GetElementById делается XPath'ами)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы