Ответы пользователя по тегу PyQt
  • Как избежать ошибки exit code -1073741819 (0xC0000005)?

    @cython
    PyQt не предполагает, что вы будете создавать QApplication несколько раз. Из-за этого, видимо, и возникает ошибка с памятью, так как где-то может быть обращение к невалидному указателю.
    Мне кажется, что для ваших целей лучше подойдёт Selenium, а не PyQt.
    import sys
    from PyQt5.QtCore import QEventLoop, QUrl
    from PyQt5.QtWidgets import QApplication
    from PyQt5.QtWebEngineWidgets import QWebEngineView
    from bs4 import BeautifulSoup
    
    
    class Render(QWebEngineView):
        def __init__(self):
            self.html = None
            self.app = QApplication(sys.argv)
            QWebEngineView.__init__(self)
            self.loadFinished.connect(self._loadFinished)
    
        def _callable(self, data):
            self.html = data
    
        def _loadFinished(self, result):
            self.page().toHtml(self._callable)
    
        def get_data(self, url):
            self.html = None
            self.load(QUrl(url))
            while self.html is None:
                self.app.processEvents(QEventLoop.ExcludeUserInputEvents |
                                       QEventLoop.ExcludeSocketNotifiers |
                                       QEventLoop.WaitForMoreEvents)
            return self.html
    
    
    if __name__ == '__main__':
        print("Collecting data...")
        render = Render()
    
        for p in range(3):
            html = render.get_data(f'https://hh.ru/search/vacancy?area=&fromSearchLine=true&st=searchVacancy&text=&page={p}')
            # get data from page
            bs4 = BeautifulSoup(html, "lxml")
            for elem in bs4.find_all("div", "vacancy-serp-item"):
                print(elem.find('a', 'bloko-link').text)
    Ответ написан
    1 комментарий
  • Как из ui (Pyqt5) в py запустить в Python?

    @cython
    Нужно создать класс наследующийся от QMainWindow и вашей формы, также необходимо вызвать setupUi. Далее запускаете как обычное PyQt приложение:
    import sys
    
    from PyQt5.QtWidgets import QMainWindow, QApplication
    from Ui_Form import Ui_Form  # Замените на импорт вашего класса
    
    
    class MainWindow(QMainWindow, Ui_Form):
        def __init__(self):
            super().__init__()
            self.setupUi()
    
    
    app = QApplication(sys.argv)
    main_window = MainWindow()
    
    main_window.show()
    sys.exit(app.exec_())
    Ответ написан
    Комментировать