Соскоб в сети в Objective C - PullRequest
8 голосов
/ 03 мая 2011

есть ли библиотека Objective C для разбора HTML, например Python BeautifulSoup? Спасибо

Ответы [ 2 ]

8 голосов
/ 03 мая 2011

Со стороны Apple есть NSXMLDocument и NSXMLParser , которые поддерживают ввод данных в HTML. ( Руководство по программированию на основе дерева XML )

В iOS (4.3) в настоящее время нет NSXMLDocument , поэтому вам придется использовать NSXMLParser или libxml2.2.

Еще немного информации о потенциальных проблемах с синтаксическим анализом HTML:
Каков наилучший подход для разбора XML / «очистки экрана» в iOS? UIWebview или NSXMLParser?

Наиболее надежным решением является использование внеэкранного WebView, загрузка в него исходного кода HTML и доступ к его дереву DOM .

3 голосов
/ 04 марта 2015

Лучший способ, который я нашел, это NSXMLParser + libtidy.Однако в настоящее время доступно много сторонних библиотек, что облегчает анализ.(последний ответ был написан в 2011 году).

  • Google's Gumbo HTML5 parser довольно хорош.Он написан на чистом C99, и вы можете использовать его с Objective C (используйте обертку типа эта ).
  • Если вам нужны чистые библиотеки Objective C, тогда Ono или hpple - это хорошо. HTMLReader также является хорошей альтернативой.
  • Если вам нравится Swift, вы можете использовать NDHpple , который является быстрой оболочкой, основанной на hpple.Или вы можете использовать Swift-HTML-Parser .(Бонус: Alamofire так же хорош, как Python Requests, и его приятно использовать)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...