Ответ зависит от языка. JavaScript, например, может естественно обрабатывать просмотр HTML DOM, и есть библиотеки, такие как ProtoType, которые быстро справятся с этим. Точно так же ответ Гаранна поможет вам в этом.
На других языках я бы предложил использовать регулярные выражения для поиска тегов, в которых есть теги абзаца. Скорее всего, это повлечет за собой превращение всего HTML-кода в одну строку и его обработку.
Предполагая, что это правильно отформатированный HTML, вы можете удалить весь контент, оставив только теги. Выполнение этого сначала сделает последующие шаги более быстрыми. Тогда, скорее всего, речь идет о некоторых циклах и счетчиках.