Найти - Пользователи
Полная версия: Вывод urllib в textBrowser
Начало » GUI » Вывод urllib в textBrowser
1
amaroc
Всем привет! Изучаю питон, в программировании полный новичек. Пытаюсь сделать парсер, с интерфейсом. Пока что начал с примитивных функций. Вот файлы моего проекта:

Интерфейс program.ui
http://pastebin.com/uTP4iB4A

Програма
import sys
import PyQt4
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.uic import *
app = QApplication(sys.argv)
w = loadUi("program.ui")
import urllib
from urllib import request
x = urllib.request.urlopen('http://www.ya.ru')
z = (x.read(), str)
#print(z)
def buttonKlick():
	w.textBrowser.setText(z)
	
w.connect(w.pushButton, SIGNAL("clicked()"), buttonKlick)
w.show()
sys.exit(app.exec_())

Выдает ошибку:
Traceback (most recent call last):
  File "parser_0.04_simple_interface.py", line 18, in buttonKlick
    w.textBrowser.setText(z)
TypeError: QTextEdit.setText(str): argument 1 has unexpected type 'tuple'

Логика (моя) такова, я нажимаю кнопку “Парсим!” - вызывается переменная z она вызывает x.read и данные полученные урллибом перерабатываются в строку, и записываются в textBrowser однако этого не происходит. Если в программе прописать print(z) (раскоментировать) то шелл выдаст - весь исходный код яндекса без каких либо проблем, конечно там есть задержка, вот о ней я думал - может функция “смены” текста не ждет пока там “скачается\прочитается\переработается” текст ? Заранее спасибо!
FishHook
amaroc
я нажимаю кнопку “Парсим!” - вызывается переменная z она вызывает x.read
И с какого перепугу она что-то должна вызывать?
Вы, конечно, хотите, чтобы ваш код и ваши ошибки прокомментировали, но нельзя прокомментировать бред. Вот эта ваша строка
z = (x.read(), str)
это бред и галимотья. Начинайте с изучения элементарных принципов работы программ и основ синтаксиса питона.
Вы не понимаете, что такое функция, как и в какой момент она выполняется, не знаете, что такое кортеж, что значит переменная и т.д.
Не ждете же вы, что вам сейчас начнут пересказывать сотни страниц учебника, который вы не читали?
amaroc
FishHook
Спасибо! Если бы я все это знал то и на форум бы не писал. Есть кто попроще кто может указать на ошибку в “галиматье”?
doza_and
amaroc
Есть кто попроще кто может указать на ошибку в “галиматье”?
z таков что его нельзя использовать как текст в этом и ошибка.
Но это вольный пересказ того что вам сообщил интерпретатор, поэтому наверное вам не поможет.
Поддерживаю мнение что вам надо учебник почитать, иначе у вас через строчку такие затыки будут.
Rodegast
Последнее время я это очень часто повторяю, но видно предыдущии темы мало кто читает, по этому скажу ещё раз.
Qt это не tkinter функции в нём не прокатят! По этому прежде чем пытаться изучать PyQt нужно изучить ООП.
amaroc
doza_and
Спасибо за подсказку, сам об этом думал. К сожалению нету времени читать учебники так как работаю по 12-13 часов в день 6 дней в неделю. Да и более приятен стиль изложения из видео уроков. К сожалению часто слышу про это сверхестественное ООП - но посмотрев и прочитав про него так и не понял всей сути, просто в голове не укладывается.
Касаемо костылей которые будут встречаться на каждом шагу я к ним готов, вот и на форум написал после 3 дневной войны с тем что не выводится текст, понять бы по во что его переформатировать знаю есть float str int а что еще?

Может я как то не правильно перевожу данные в str попробую найти другие примеры, еще был beutifulsoup может им пройтись по выводу urllib уфф ладно буду дальше ломать голову в свободное время )

Так же хочу добавить что отсылать читать учебники, и становиться профи это все хорошо, толко толку мало. Я вот уверен что еще сотни человек столкнутся с подобного рода задачей - вывести текст из переменной - наберут это в гугле зайдут в эту тему, а конкретного решения не увидят. В итоге вроде мотивы отвечающих были “позитивны” а толку дали 0 и даже потратили время людей которые зря зашли на страницу поиска Это как знаете заходишь на форум какойнить варкрафтовский и там человек спрашивает - как называется аддон который позволяет сканировать аукцион, а ему говорят (первые 2-3 коментатора) - а зачем тебе это надо, иди за гугли, играй без аддонов это круто!

Нашел решение - спасибо doza_and всего навсего стоило поменять z на str(z)
def buttonKlick():
	w.textBrowser.setText(str(z))
JOHN_16
amaroc
ок, я воздержусь от любых комментариев по поводу вашего кода. Только факты. Я думаю Вы ошиблись - вам же надо отобразить в виджете только исходный html страницы?
def buttonKlick():
    w.textBrowser.setText(str(z[0]))
doza_and
amaroc
К сожалению нету времени читать учебники
amaroc
после 3 дневной войны с тем что не выводится текст
https://www.youtube.com/watch?v=qRUZsYsRkxs
Тут большинство занимают позицию грифа. Учебник за день можно прочитать. Или вы 3 дня по три минуты тратили? Хотя доля правды в ваших словах есть google + copy paste используются все чаще. Но есть основы…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB