Лучший вариант для веб-скрепок (HTMLAgilityPack или Python + beautifulsoup) для программиста на C #

beautifulsoup c# html-agility-pack python

Вопрос

Я программист .NET. Мне нужно работать над проектом веб-соскабливания. Я хочу получить представление о HTMLAgilityPack vs BeautifulSoup.

Многие говорят, что BeautifulSoup намного лучше, чем HTMLAgilityPack. Но для этого мне нужно изучить Python.

Итак, мой вопрос: разумно ли мне изучать Python и BeautifulSoup или продолжать работу с C # и HTMLAgilityPack?

Любое другое предложение приветствуется.

Принятый ответ

В мире C # .NET я бы рекомендовал HTMLAgilityPack, потому что он очень гибкий. Он позволяет вам манипулировать плохо сформированным HTML, как если бы он был хорошо сформированным XML, поэтому вы можете использовать XPath или просто перебирать узлы.

BeautifulSoup - отличный способ пойти на очистку HTML, но с точки зрения разработчика, на самом деле нелегко получить практические навыки по совершенно новой технологии. Поэтому я бы настоятельно рекомендовал HTMLAgilityPack, если вы парень .NET.

Вы можете получить большой успех благодаря сочетанию HTML Agility Pack , регулярных выражений и XDocument (LINQ -> XMLy)

Это экстремальный эффект - LINQ и лямбда (часть 3) - HTML Agility Pack - это сообщение в блоге от Vijay Santhanam, которое заставило меня зацепиться за него.


Популярные ответы

CsQuery , созданная мной библиотека, является относительно новой альтернативой Html Agility Pack. Он предлагает следующие преимущества:

  • Полная поддержка селектора CSS3, которая для большинства людей уже знакома и намного проще, чем xpath, и так же, как вы уже кодировали для клиента
  • API jQuery по тем же причинам
  • Использует синтаксический анализатор validator.nu HTML, полностью совместимый с HTML5 синтаксический анализатор. Это та же самая кодовая база, используемая браузерами на основе Gecko (Firefox), что означает, что она должна производить то же самое DOM, что и веб-браузеры, даже для типично плохой / недопустимой разметки.
  • Индексы документов делают селектора очень быстрыми даже на очень больших документах. HAP должен пересекать полное дерево документов для каждого селектора, что делает его очень медленным для сложных селекторов и больших документов.
  • Обширное тестирование тестового пакета - все тесты от jQuery и Sizzle (механизм выбора CSS jQuery) были перенесены на C #.

Недостатки:

  • Сейчас работает только компиляция .NET Framework 4+, в то время как HAP имеет сборку для большинства сред .NET.

Вы можете получить его из nuget: Install-Package CsQuery .



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow