使用aiohttp加载url,等待几秒,刷新页面,然后读取页面内容

Load urls with aiohttp, wait a few seconds, refresh the page, then read the contents of the page

如标题所述,我正在尝试使用 aiohttp 和 asyncio 从多个页面中获取数据。但是,我遇到的问题涉及程序太快地从页面中获取信息然后退出。该网页需要先更新其内容(这可能需要几秒钟),然后刷新以显示正确更新的内容,这就是我想要收集的内容。

有没有一种方法可以加载页面,等待几秒钟,刷新页面,然后阅读页面内容?这是我当前的获取方法的样子:

async def fetch(session, url):
    with aiohttp.Timeout(10):
        async with session.get(url) as response:
            return await response.text()

当您在浏览器选项卡中加载 url 时,浏览器会发送请求以获取 url 的内容(在我们的示例中仅包括 html 文本)。然后浏览器在这个 html 中搜索 links - links 到图像,到 css,到脚本,并发送请求来加载它。当浏览器加载其中一些 link 时,它会更新您页面的视图,特别是当 javascript link 加载的浏览器开始执行它时(更新页面的 html 内容)。当加载显示页面所需的所有 link 并执行所有脚本时 - 您的页面已完全加载。

从像 aiohttp 这样的所有流程请求库中,只做第一件事 - 发送请求以获取 url 的内容 (response.text())。它不会在该内容中加载脚本 links,也不会执行它们来修改内容。

aiohttp无法完成您的要求。

如果您需要通过执行 javascript 加载内容,您需要更复杂的基于浏览器的解决方案 like PyQt