如何保持 PyQT5 流打开以捕获 dojo/domReady! JS执行?

问题描述

我正在使用下面的示例代码来抓取网站。问题是该网站在“dojo/domReady!”后面有代码。属性,因此下面引用的代码将在调整/完成剩余网站内容之前完成并抓取 HTML。

有人可以帮我调整下面的代码,使其在页面存在时抓取 HTML 之前“在页面连接后等待 10 秒”吗?我正在尝试等待任意时间,以允许任何或所有内容在初始页面加载后进一步呈现。

示例:

import bs4 as bs
import sys
import urllib3.request
from PyQt5.QtWebEngineWidgets import QWebEnginePage
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QUrl
import time

class Page(QWebEnginePage):
    def __init__(self,url):
        self.app = QApplication(sys.argv)
        QWebEnginePage.__init__(self)
        self.html = ''
        self.loadFinished.connect(self._on_load_finished)
        self.load(QUrl(url))
        self.app.exec_()

    def _on_load_finished(self):

        self.html = self.toHtml(self.Callable)
        print('Load finished')

    def Callable(self,html_str):
        self.html = html_str
        self.app.quit()


def main():
    page = Page('some_website')
    soup = bs.BeautifulSoup(page.html,'html.parser')
    print(soup)

main()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...