簡體   English   中英

Pycharm上的PyQt5,未使用的模塊

[英]PyQt5 on Pycharm, Modules not used

編寫Python腳本來運行網頁后抓取網頁。 我意識到我需要運行JS,因為使用Requests不會返回任何數據。 我發現這里似乎是我的解決方案但仍然存在一些問題。

首先,該教程使用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導入語句也均具有“ Unused Import Statement”指示。 我已經嘗試了幾個小時來解決這些問題,多次卸載並重新安裝PyQt並搜索了互聯網

任何建議都會很棒,謝謝!

您的導入不正確,在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

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的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM