Задать вопрос

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

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

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

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

Кто может порекомендовать?
  • Вопрос задан
  • 1288 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 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'ами)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы