Sayonji: Людей, для которых питон в новинку, нужно сразу отучать использовать map и filter там, где можно настолько же эффективно использовать включения и генераторы.
Артем:
1) У bs нет поиска по xpath.
2) xpath можно заменить цепочкой селекторов, но у bs нет поиска по цепочке селекторов
3) Метод .find возвращает элемент или None. Это самая глупая и неудобная концепция, под которую приходится строить свои костыли или кулхацкерские решения. Логично было бы кидать ошибку или отдавать элемент-пустышку вместо None (чтобы у него были методы .find и .find_all). Вкупе с пунктом №2 код превращается в неведомую лапшу из проверок на то, что element is not None.