Форум сайта python.su
Добрый день!
Не могу разобраться, небольшую программку поиск по ключевым словам. Программа должна искать в интернете сайты по ключевым словам. Она после ввода ключевых слов и нажатия запуск программа закрывается и выдает ошибку Process finished with exit code 1
import sys import time import urllib.request from myparser import * from PyQt5 import QtCore, QtGui, QtWidgets def get_html(url): response = urllib.request.urlopen('http://../ https://.../') r = response.read() class MyWin(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.comboBox.setCurrentIndex(0) self.ui.comboBox.addItems('google.com yandex.ru rambler.ru mail.ru vk.com ok.ru facebook.com'.split()) self.ui.statusbar.showMessage('© Irina Dymura, 2016') self.ui.pushButton.clicked.connect(self.start1) def start1(self): self.ui.pushButton.setEnabled(False) self.ui.plainTextEdit.clear() if self.ui.comboBox.currentIndex() == 0: self.wordgoogle(self.ui.lineEdit.text()) elif self.ui.comboBox.currentIndex() == 1: self.wordyandex(self.ui.lineEdit.text()) elif self.ui.comboBox.currentIndex() == 2: self.wordrambler(self.ui.lineEdit.text()) elif self.ui.comboBox.currentIndex() == 3: self.wordmail(self.ui.lineEdit.text()) elif self.ui.comboBox.currentIndex() == 4: self.wordvk(self.ui.lineEdit.text()) elif self.ui.comboBox.currentIndex() == 5: self.wordok(self.ui.lineEdit.text()) elif self.ui.comboBox.currentIndex() == 6: self.wordfacebook(self.ui.lineEdit.text()) def wordgoogle(self, letters): self.cancelled = False self.t1 == time.time() self.c = 0 self.resArr = [] self.initW = letters self.res = ["","","",""] self.r = open("http://google.com/", encoding='utf-8') self.fileRead = self.r.read() self.fileSplit = self.fileRead.split() self.r.close() self.progress = QtWidgets.QProgressDialog("Searching...", "Stop", 0, len(self.initW), self.ui.lineEdit) self.progress.setWindowModality(QtCore.Qt.WindowModal) self.progress.setMinimumDuration(1000) for self.i in range(0, len(self.initW)): self.res[0] = self.initW[self.i] self.progress.setValue(self.i) if self.progress.wasCanceled(): self.cancelled = True self.ui.pushButton.setEnabled(True) return for self.q in range(0, len(self.initW)): if (self.q != self.i): self.res[1] = self.initW[self.q] for self.pp in range(0, len(self.initW)): if (self.p != self.i) and (self.p != self.q): self.res[2] = self.initW[self.p] for self.pp in range(0, len(self.initW)): if (self.pp != self.i) and (self.pp != self.q) and (self.pp != self.p): self.res[3] =self.initW[self.pp] self.wordgoogle = self.res[0] + self.res[2] + self.res[3] if self.wordgoogle not in self.resArr: self.resArr.append(self.wordgoogle) self.c += 1 self.str = "Найдено совпадений: " + str(len(self.resArr)) + "\n" + self.arrOutput(self.resArr) + "\n" + str(self.c) + " комбинаций проверено\nВремя исполнения: " + str(time.time() - self.t1) + " c. " self.ui.plainTextEdit.appendPlainText(self.str) self.ui.pushButton.setEnabled(True) def arrOutput(self, arr): arr.sort() self.str = '' for i in range(0, len(arr)): if i != len(arr) - 1: self.srt += arr[i] + ', ' else: self.str += arr[i] + '.' return self.str def wordyandex(self, letters): pass def wordrambler(self, letters): pass def wordmail(self, letters): pass def wordvk(self, letters): pass def wordok(self, letters): pass def wordfacebook(self, letters): pass if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) myapp = MyWin() myapp.show() sys.exit(app.exec_())
Офлайн
1) Не надо все переменные делать атрибутами.
2)
>>> open("http://google.com/", encoding='utf-8') Traceback (most recent call last): File "<stdin>", line 1, in <module> IOError: [Errno 2] No such file or directory: 'http://google.com/'
class MyWin(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QWidget.__init__(self, parent)
Офлайн