问题描述
我正在使用下面的示例代码来抓取网站。问题是该网站在“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 (将#修改为@)