Какие знания нужно иметь, чтобы писать парсер на Python?
Ваш вопрос звучит так "Какие знания нужно иметь, чтобы создавать транспортные средства?". Парсеры бывают разные, где-то просто собрать кусок текста из блока (хватит обычного requests), где-то скопировать материалы с множества страниц (удобнее уже Scrapy, lxml), где-то будет мешать авторизация, где-то будет мешать капча (нужно писать распознание капчи или использовать платные API для распознания капчи), где-то уже будут серьезные защиты от парсинга. 
Пишите простые парсеры, потом потихоньку переходите к более сложным, там будете уже понимать, какие штуки нужны.
Если ищите примеры парсеров веб страниц с разбором и объяснениями делюсь ссылкой
Либо вот большая подробная статья на хабре от этих же ребят