asyncio

hardwork

Новичок
Пользователь
Янв 10, 2022
5
0
1
Новичок, только начал изучать асинхронный парсинг, так что не кидайте камнями :)

Мне нужно одновременно спарсить два сайта, но просмотрев несколько статей и видео, я ничего не понял.
Вот код, который я написал:

Код:
import requests
import asyncio

list1 = []
async def xxx():
    sm = ['1', '2', '3']
    for t in sm:
        response = requests.get(url=f'https://...={t}')
        list1.append(response.json())

list2 = []
async def yyy():
    sm = ['1', '2', '3']
    for t in sm:
        response = requests.get(url=f'https://...={t}')
        list2.append(response.json())

async def main():
    d = await asyncio.gather(
        xxx(),
        yyy(),
    )
    print(d)

asyncio.run(main())

Не знаю точно, как работает asyncio.gather, но я пробовал все подряд.
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
971
219
43
20
Москва
Про асинхронность: YouTube Playlist
Про асинхронный парсинг: YouTube Video

Если вкратце, requests не поддерживают асинхронность, так что использовать надо что-то другое, например Requests-Html или aiohttp
 

Форум IT Специалистов