Xpath против DOM против BeautifulSoup против lxml против другого Какой самый быстрый подход к анализу веб-страницы?

Я знаю, как анализировать страницу с помощью Python. Мой вопрос в том, какой самый быстрый метод из всех методов синтаксического анализа, насколько он быстр от других?

Известные мне методы синтаксического анализа — это Xpath, DOM, BeautifulSoup и использование метода find Python.


person codersofthedark    schedule 01.12.2011    source источник
comment
Выберите веб-страницу. Используйте модуль timeit для проверки времени выполнения различных механизмов при анализе выбранного вами источника. Сообщите, какой из них самый быстрый.   -  person larsks    schedule 01.12.2011
comment
Ха-ха, я думаю, теперь я бы это сделал, потому что мне интересно, насколько производительность синтаксического анализа может различаться на x86 и x64;)   -  person codersofthedark    schedule 01.12.2011


Ответы (2)


http://blog.ianbicking.org/2008/03/30/python-html-parser-performance/

Сравнение

person Acorn    schedule 01.12.2011
comment
Так что кажется, что lxml — самый быстрый из всех, теперь я понимаю, почему IBM рекомендует lxml. Приятно спасибо :) - person codersofthedark; 01.12.2011

lxml был написан на C. И если вы используете x86, то лучше выбрать. Если говорить о методах, то большой разницы между Xpath и DOM нет - это очень быстрые методы. Но если вы будете использовать find или findAll в BeautifulSoup, это будет медленнее, чем другие. BeautifulSoup был написан на Python. Этой библиотеке нужно много памяти для разбора любых данных и, конечно же, она использует стандартные методы поиска из библиотек python.

person SkyFox    schedule 01.12.2011
comment
Хорошо сказано, написанная на C библиотека всегда намного быстрее, чем чистый модуль Python. Спасибо за обновление, что lxml написан на C. Хотел знать, почему вы упомянули x86. Вроде в x64 что-то может работать лучше, чем lxml, если да, то какое и почему? - person codersofthedark; 01.12.2011
comment
x86 или x64 в этом контексте не имеют никакой разницы. Я имею в виду другие платформы, например SPARC или ARM :) - person SkyFox; 01.12.2011
comment
да ладно, в моем случае это не проблема :) - person codersofthedark; 01.12.2011