1) Как мне запустить этот файл через обычную html кнопку?
При нажатии на кнопку запрос обрабатывается контроллером. Пока действие не выполнено, клиент ждет, тупо уставившись в экран.
Поэтому изначально проектируется таким образом, что контроллер быстро передает управление стороннему компоненту все параметры пользователя и другие, необходимые для обработки, а сам возвращает ответ 200 или 202.
Сторонний компонент предоставляет из себя диспетчер очереди задач. В "упаковку"-задачу кладут все аргументы, "запаковывают" и помечают в БД, что создана задача X во время T и она в статусе ожидания.
Обработчиков очереди задач (отдельный от веб-приложения процесс) может быть как несколько, так и достаточно большое количество. Каждый такой обработчик помечает в той же БД, что задача X находится в обработке и приступает к парсингу с полученными аргументами. По окончанию помечает что выполнено, а результаты парсинга сохраняет в БД.
Как отображать какую-то информацию на странице (не результат парсинга, а промежуточную, например, код ответа с отправленных запросов) , которая приходит из parse.py
Это будет усложнением для системы, но вполне возможно. Ведь статусы ответов будут получены очень быстро и их надо будет сохранять в БД, а клиент должен периодически опрашивать статусы или получать их через SSE. И когда-то придется очищать БД от старых результатов.
Как например остановить процесс парсинга
Обработчик, который начал парсинг, должен определять по периодическому обращению к БД, что задача отменена.