Разделение DOM / SAX является базовым. Это относится не только к питону, поскольку DOM и SAX являются мультиязычными.
DOM : прочитать весь документ в память и манипулировать им.
Хорошо для:
- сложные отношения между тегами в разметке
- маленькие сложные XML-документы
- Внимание:
- Простая в использовании избыточная память
SAX : анализировать документ во время его чтения. Хорошо для:
- Длинные документы или открытые потоки
- места, где память является ограничением
- Внимание:
- Вам понадобится кодировать анализатор с сохранением состояния, что может быть сложно
BeautifulSoup
Отлично подходит для HTML или не совсем правильно сформированной разметки. Простой в использовании и быстрый. Хорошо подходит для скриншота и т. Д. Он может работать с разметкой, когда на основе XML произойдет ошибка, сообщающая о неправильной разметке.
Большую часть остального я не использовал, но я не думаю, что есть жесткие и быстрые правила о том, когда и какие использовать. Только ваши стандартные соображения: кто будет поддерживать код, какие API вы считаете наиболее простыми в использовании, насколько хорошо они работают и т. Д.
В общем, для базовых потребностей целесообразно использовать стандартные библиотечные модули, поскольку они являются «стандартными» и, следовательно, доступны и хорошо известны. Однако, если вам нужно углубиться во что-то, почти всегда есть новые нестандартные модули с превосходной функциональностью вне стандартной библиотеки.