HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 30.01.2013, 20:55
^NSA^
Познающий
Регистрация: 03.07.2012
Сообщений: 64
С нами: 7294646

Репутация: 32
По умолчанию



Сегодня для вас урок про начальный граббер и tkinter.

Первый делом нам нужен софт идем за ним.

1.Aptana Studio тут

2.Python 3 верс качай тут

Далее Создаем проект

Название даем Graber. рис 1





подключаем Нас путь Питону рис ниже.





Напишем первую тест прогу.

сперва добавим библиотеку tkinter

from tkinter import *

from tkinter import ttk

from tkinter import messagebox

Программа просто выводит диалог с приветом Hello Anctichat.

пример кода

Код:
from tkinter import *
from tkinter import ttk
from tkinter import messagebox

messagebox.showinfo(message='Hello Anctichat')
Перейдем к 2 программы которая в фраме выводит надпись Graber показывает кнопку и Call Frorum.

при ее нажатие получаем прежний диалог. пример кода

Код:
from tkinter import *
from tkinter import ttk
from tkinter import messagebox

def click():
    messagebox.showinfo(message='Hello Anctichat') 
    
frame = Tk()
frame.title("Graber")
ttk.Button(frame, text="Call Frorum",width=20, command=click).grid(column=2, row=6, sticky=W)
frame.mainloop()
В программе под примером 3 мы можем получать значение полей и также устанавливать. пример кода

Код:
from tkinter import *
from tkinter import ttk
from tkinter import messagebox

def click():
    global name
    messagebox.showinfo(message=name.get()) 
    name.set("Hello Anctichat")
    

frame = Tk()
frame.title("Graber")
name= StringVar()
name.set("Call Frorum")   
ttk.Button(frame, text="Click",width=20, command=click).grid(column=2, row=1, sticky=W)
field= ttk.Entry(frame, width=20, textvariable=name).grid(column=2, row=2, sticky=(W, E))

frame.mainloop()
Переходим с 4 примеру код грабера

создаем форму добавляем элементы как ранние

В обработчике событий получаем значение полей .

в первом поле название адреса 2 пат терн рег выражение.

сперва вызываем 1 фунц грабим текст с сайта.

потом парсим ее наконец возвращаем результат.

Разберем siteurl функцию

Сперва устанавливаем заголовки пробуем запрос если удачно получаем данные если нет видим диалог.

пример кода

Код:
'''
Created on Jan 29, 2013
@author: ^NSA^
Lesson Grabber
'''
from tkinter import *
from tkinter import ttk
from tkinter import scrolledtext
from tkinter import messagebox
import re
import urllib.request
import urllib.error

def unit(*args):
    global rezult
    
    pat = regpat.get()
    url = site.get()
    html= siteurl(url)
    str =parseData(html,pat)
    t.insert(END, str)

def siteurl(url):
    
    opener = urllib.request.build_opener()
    opener.addheaders = [('User-agent', ' Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0')]
    try:
        response = opener.open(url)
        
        html = response.read().decode('utf-8')
        return html
    except  urllib.error.URLError as e:
        messagebox.showinfo(message='Can open url') 
        return ""
    
def clear(): 
   t.get("1.0",END)
   t.delete("1.0",END)
    
#need fix all
def parseData(st,pat):
    reg =re.compile(pat,re.M)
    m = reg.search(st)
    if(m is not None):
        return str(m.groups())
    else:
        return "cant search change pattern!"
    

window = Tk()
window.title("Lesson Grabber")
site= StringVar()
regpat = StringVar()
regpat.set(r"(\s+.*)")
site.set("http://one.lv")

mainframe = ttk.Frame(window, padding=(5, 5, 12, 0))

hello = {"text":"sample"}
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=15)

ttk.Label(mainframe,text="Site url").grid(column=2, row=1, sticky=(W, E))
field= ttk.Entry(mainframe, width=20, textvariable=site)
field.grid(column=2, row=2, sticky=(W, E))

ttk.Label(mainframe,text="Pattern Reg").grid(column=2, row=3, sticky=(W, E))
field2= ttk.Entry(mainframe, width=20, textvariable=regpat)
field2.grid(column=2, row=5, sticky=(W, E))

ttk.Button(mainframe, text="Grab",width=20, command=unit).grid(column=2, row=6, sticky=W)
ttk.Button(mainframe, text="Clear",width=20, command=clear).grid(column=2, row=8, sticky=W)
scrol = Scrollbar(mainframe)
t =Text(mainframe)
t.grid(column=2, row=7, sticky=W)
window.geometry("400x550")
window.mainloop()


Автор ^NSA^ 2013г.

продолжение следует
 
Ответить с цитированием

  #2  
Старый 30.01.2013, 21:34
mistika
Новичок
Регистрация: 23.06.2012
Сообщений: 0
С нами: 7309046

Репутация: 0
По умолчанию

Можешь дописать программу чтоб урлы из списка брала и регулярка? (и поделиться с нами)
 
Ответить с цитированием

  #3  
Старый 30.01.2013, 22:18
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
С нами: 9655526

Репутация: 1821


По умолчанию

Спасибо, очень познавательно.
 
Ответить с цитированием

  #4  
Старый 30.01.2013, 23:05
FunOfGun
Постоянный
Регистрация: 05.09.2012
Сообщений: 388
С нами: 7202486

Репутация: 124
По умолчанию

Неплохо. Не подскажешь норм доку по tkinter? Можно на английском, главное что бы доходчиво.
 
Ответить с цитированием

  #5  
Старый 30.01.2013, 23:13
^NSA^
Познающий
Регистрация: 03.07.2012
Сообщений: 64
С нами: 7294646

Репутация: 32
По умолчанию

 
Ответить с цитированием

  #6  
Старый 30.01.2013, 23:16
BlackIce
Участник форума
Регистрация: 10.01.2013
Сообщений: 100
С нами: 7019606

Репутация: 27
По умолчанию

Окай, я новичек в кодинге.

Цитата:
Сообщение от None  
Первый делом нам нужен софт идем за ним.
1.Aptana Studio тут
2.Python 3 верс качай тут
Зачем мне этот софт? Что он делает? Не понимаю /*Далее проясняется, что эта замечательная программа превращает интерпретируемый язык в компилируемый, бодобно PHP Devel Studio говну.*/

Цитата:
Сообщение от None  
Напишем первую тест прогу.
сперва добавим библиотеку tkinter
Какую библиотеку? А она нафига? /*Она видимо содержит какие-то ф-ции, упрощающие работу с чем-то*/

Цитата:
Сообщение от None  
Перейдем к 2 программы которая в фраме выводит надпись Graber показывает кнопку и Call Frorum.
при ее нажатие получаем прежний диалог.
Считайте кем хотите, но мой мозг счел данное предложение чересчур информативным и отказался обрабатывать инфу...

Цитата:
Сообщение от None  
В программе под примером 3 мы можем получать значение полей и также устанавливать. пример кода
Какие поля? Какие значения? Походу я в кодинге безнадёжен... Пойду-ка лучше порнуху посмотрю, а то было так много идей по написанию софта, но спасибо ТСу, что открыл мне глаза на всю сложность и непонятность в программировании...

По поводу кода писать ничего не стану ибо он и так вопиет о том, что мечтает быть красифо отформатированным и видеть в себе комментарии.

Тс, без обид, но тут 2 варианта:

1. Ты сам начинающих прогер и еще недостаточно компетентен для написания годного кода и тем более статей .

2. Ты Илитный и толстый быдлокодер, который решил завербовать в ряды быдла нивчем неповинных юзверей.

/*Статья ни то что ничему не учит, а наоборот напрочь отбивает желание кодить*/
 
Ответить с цитированием

  #7  
Старый 30.01.2013, 23:33
^NSA^
Познающий
Регистрация: 03.07.2012
Сообщений: 64
С нами: 7294646

Репутация: 32
По умолчанию

Цитата:
Сообщение от BlackIce  
Тс, без обид, но тут 2 варианта:
1. Ты сам начинающих прогер и еще недостаточно компетентен для написания годного кода и тем более статей .
2. Ты Илитный и толстый быдлокодер, который решил завербовать в ряды быдла нивчем неповинных юзверей.
/*Статья ни то что ничему не учит, а наоборот напрочь отбивает желание кодить*/
Я тебе открою правда можешь тока блокнот использовать без Aptana Studio.

Python должен стоять и добавить переменные окружения Windows.

тогда запуск через консоль python Graber.py
 
Ответить с цитированием

  #8  
Старый 30.01.2013, 23:53
mironich
Постоянный
Регистрация: 27.02.2011
Сообщений: 733
С нами: 8003126

Репутация: 19


По умолчанию

Цитата:
Сообщение от None  
Далее проясняется, что эта замечательная программа превращает
интерпретируемый язык в компилируемый
, бодобно PHP Devel Studio говну.*/
Збс! Пиши есче!
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.