Flask: Как отобразить на сайте надпись о работе подпроцесса Python?
У меня есть 4 паука Scrapy, которых я запускаю через Flask. После нажатия на кнопку Scrape запускается подпроцесс (паук). Также отображается сообщение о том, что подпроцесс работает. Но если перезагрузить страницу, то надпись исчезнет. Как это исправить?
кнопка:
<button id="scrape" class="btn btn-success mr-2">Scrape</button>
$('#scrape').on('click', () => {
$('#status').text('Scraper is working...')
$.post('/wellness', {'specialty': specialty, 'state': state, 'city': city, 'email': email}, (res) => {
$('#status').text('')
$(location).attr('href', 'http://127.0.0.1:5000/wellness')
});
});
flask:
@app.route('/<page_id>', methods=['GET', 'POST'])
def page(page_id):
file_py = f"{page_id}.py"
if request.method == 'POST':
process = subprocess.Popen('python spiders/' + file_py, shell = True)
process.wait()
Ответы (1 шт):
Автор решения: Bulat Khabibullin
→ Ссылка
Более простой способ это поставить scrapyd. И обращаться к нему по API: Например запустить паука:
$ curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider
Посмотреть джобы:
$ curl http://localhost:6800/listjobs.json?project=myproject