170 похожих чатов

Еще такой вопрос : понял, как сделали здесь, но они

парсят одну страницу и в асинке получают данные для разных значений на ней, а я хочу, чтобы одновременно парсились несколько страниц.

Как мне это сделать?

Примерный код :

async def get_html(s, l): # получаем ответ от сайта
return await s.get('https://google.com/order/' + str(l))

if __name__ == "__main__":
s = requests.Session()

loop = asyncio.get_event_loop()

for l in range(0, 1000000, 1): # здесь хочу в асинк закинуть цикл, а как - не знаю :(
response = loop.run_until_complete(get_html(s, l))
soup = BeautifulSoup(response.content, "html.parser")
orders_info(soup) # обработка с супом каждого из сайтов

loop.close()

18 ответов

7 просмотров

to_thread для синхронного кода + gather для нескольких to_thread - все в asyncio docs смотри

Max-A Автор вопроса
Well Done
to_thread для синхронного кода + gather для нескол...

нашел такое, но все равно не понимаю, как потоку передавать границы цикла :( можешь подсказать пж?

Max A
нашел такое, но все равно не понимаю, как потоку п...

7 ему уже, в сыновья мне этот вопрос годится

Max A
нашел такое, но все равно не понимаю, как потоку п...

Могу ошибаться, но тебе нужно нечто вроде await asyncio.gather(asyncio.to_thread(to_db, some_data[from:to]), asyncio.to_thread(to_db, some_data[other_from:other_to]))

Well Done
Могу ошибаться, но тебе нужно нечто вроде await as...

Если to_db синхронный, а так можно await asyncio.gather(async_to_db(some_data), async_to_db(some_other_data))

Tishka17
Что за async to sync

Наоборот, зырь: https://docs.python.org/3/library/asyncio-task.html#id10

Tishka17
Ок. Это типа замена run in executor

Круто, да? Я был рад, когда это увидел (надо было синхронную либу использовать) P.S. А рад я был, потому что советы были практически десятилетней давности и внешний вид у них оставляет желать лучшего

Well Done
Круто, да? Я был рад, когда это увидел (надо было ...

Не очень круто. Лучше присмотреться к run in executor, ты же не хочешь миллион тредов

Tishka17
Не очень круто. Лучше присмотреться к run in execu...

Ты написал так, будто Executor тебе не сделает миллион тредов (на миллон блокирующих функций как я понял)

Tishka17
Thread pool executor слышал?

Слышал, но не юзал еще

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта