Pycharm上的PyQt5,未使用的模块

时间:2017-06-23 16:29:19

标签: python pyqt pycharm pyqt4 pyqt5

编写Python脚本,在运行JavaScript后抓取网页。我意识到我需要运行JS,因为使用Requests并没有返回任何数据。我找到了似乎是我的解决方案here,但我仍然遇到了一些问题。

首先,该教程使用PyQt4,我已经从项目解释器安装并尝试了多个版本的PyQt 4和5,但仍无法找到解决方案。以下是相关代码:

import PyQt5.QtWebEngineWidgets
import PyQt5.QtCore
import PyQt5.QtWebEngine
import PyQt5.QtWebEngineCore


class Render(QWebpage):
    def __init__(self, url):
        self.app = QApplication(sys.argv)
        QWebPage.__init__(self)
        self.loadFinished.connect(self._loadFinished)
        self.mainFrame().load(QUrl(url))
        self.app.exec_()

    def _load_finished(self, result):
        self.frame = self.mainFrame()
        self.app.quit()

QWebpage,QApplication和QUrl调用都有' Unresolved Reference'错误,四个PyQt5导入语句也都有未使用的导入语句'适应症。我已经尝试了几个小时来解决这些问题,多次卸载并重新安装PyQt并搜索互联网

任何建议都很棒,谢谢!

1 个答案:

答案 0 :(得分:1)

你的导入是不正确的,在python中有很多方法可以做到:在你的情况下你可能是这样的:

1。from package import class

import sys

from PyQt5.QtCore import QUrl
from PyQt5.QtWebKitWidgets import QWebPage
from PyQt5.QtWidgets import QApplication


# Take this class for granted.Just use result of rendering.
class Render(QWebPage):
    def __init__(self, url):
        self.app = QApplication(sys.argv)
        QWebPage.__init__(self)
        self.loadFinished.connect(self._loadFinished)
        self.mainFrame().load(QUrl(url))
        self.app.exec_()

    def _loadFinished(self, result):
        self.frame = self.mainFrame()
        self.app.quit()


url = 'http://pycoders.com/archive/'
r = Render(url)
result = r.frame.toHtml()
print(result)
  1. import package,那么您应该将每个元素用作package.class
  2. import sys
    from PyQt5 import QtWebKitWidgets, QtCore, QtWidgets
    
    
    class Render(QtWebKitWidgets.QWebPage):
        def __init__(self, url):
            self.app = QtWidgets.QApplication(sys.argv)
            QtWebKitWidgets.QWebPage.__init__(self)
            self.loadFinished.connect(self._loadFinished)
            self.mainFrame().load(QtCore.QUrl(url))
            self.app.exec_()
    
        def _loadFinished(self, result):
            self.frame = self.mainFrame()
            self.app.quit()
    
    
    url = 'http://pycoders.com/archive/'
    r = Render(url)
    result = r.frame.toHtml()
    print(result)
    

    如果您正在使用pycharm,pycharm会以一种非常简单的方式为您正确导入包,为此您必须将点放在生成错误的单词上方并执行Ctrl+M

    注意:如果您使用的是Windows,那么您将无法使用这些模块,因为Qt和PyQt使用了铬,而且它们似乎与Windows有关。