Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 7, 2016 14:16:17

Irina1973
Зарегистрирован: 2016-03-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите исправить ошибку в парсере

Добрый день!
Не могу разобраться, небольшую программку поиск по ключевым словам. Программа должна искать в интернете сайты по ключевым словам. Она после ввода ключевых слов и нажатия запуск программа закрывается и выдает ошибку 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_())

Офлайн

#2 Апрель 7, 2016 15:17:08

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2759
Репутация: +  185  -
Профиль   Отправить e-mail  

Помогите исправить ошибку в парсере

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/'
3)
class MyWin(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        QtWidgets.QWidget.__init__(self, parent)
Дальше не смотрел.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version