46
Vývoj / Re:Nejrychlejší a nejjednodušší headless browser na Python?
« kdy: 01. 07. 2022, 01:13:52 »jak sem pochopil, tak asi nějak musím propojit asyncio + threading
nepochopil
Můžu se zeptat, jak bys udělal, aby to současně parsovalo třeba pět stránek současně bez použití threading?
Nějak pomocí asyncio.Queue? Jakože jedna stránka bude hotová, pošle signál (nebo jak se tomu říká) další a takhle prostě budou postupovat postupně kolem dokola?
Když sem vytvořil 5 tasks přes asyncio.create_task(), tak to parsovalo jen 1 stránku a ostatní měly smůlu. Jedině když sem udělal parse(data) a následně time.sleep(X), tak to po skončení funkce parse(data) skončilo na další task.
prikladKód: [Vybrat]import asyncio
from pyppeteer import launch
async def get_title(browser, url):
page = await browser.newPage()
await page.goto(url)
return await page.title()
async def get_titles(*urls):
browser = await launch()
titles = await asyncio.gather(
*[asyncio.create_task(get_title(browser, url)) for url in urls]
)
await browser.close()
return titles
print(asyncio.run(get_titles("https://example.com", "https://google.com")))
vypise ['Example Domain', 'Google']
diky moc!
)