Показаны сообщения с ярлыком Python. Показать все сообщения
Показаны сообщения с ярлыком Python. Показать все сообщения

вторник, 21 июня 2011 г.

Python. Авторизация на сайт Vkontakte.ru или Vk.com без API

Сайт Vkontakte.ru - это одна из самых популярных  соц сетей России.
Большая известность, повлекла за собой программистов. Появилось много программ, для этого сайта. Например клиент-серверы.

Специально для этого Администраторы сайта создали API, через который зарегистрированные приложения могут совершать различные действия, такие как отправка сообщения, просмотр списка друзей и т.д

Но для тех кто не хочет регистрировать, вот скрипт для авторизации:


import urllib
import urllib2
import re
import sys
import math
import os
import time

class Vkontakte:
    def __init__(self, email, password):
        self.email = email
        self.password = password
        self.cookie = None

    def get_s_value(self):        
        #Возвращает уникальный идентификатор, который выдается на домене login.vk.com
        host = 'http://login.vk.com/?act=login'
        post = urllib.urlencode({'email' : self.email,
                                 'expire' : '',
                                 'pass' : self.password,
                                 'vk' : ''})

        headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13 (.NET CLR 3.5.30729)',
                   'Host' : 'login.vk.com',
                   'Referer' : 'http://vkontakte.ru/index.php',
                   'Connection' : 'close',
                   'Pragma' : 'no-cache',
                   'Cache-Control' : 'no-cache',
                  }

        conn = urllib2.Request(host, post, headers)
        data = urllib2.urlopen(conn)
        my_crack = str(data.read())[350:410]        
        return my_crack  

    def get_cookie(self):
        #Возвращает remixsid из куки
        if self.cookie: return self.cookie

        host = 'http://vkontakte.ru/login.php?op=slogin'
        post = urllib.urlencode({'s' : self.get_s_value()})
        headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13',
                   'Host' : 'vkontakte.ru',
                   'Referer' : 'http://login.vk.com/?act=login',
                   'Connection' : 'close',
                   'Cookie' : 'remixchk=5; remixsid=nonenone',
                   'Pragma' : 'no-cache',
                   'Cache-Control' : 'no-cache'
                  }
        conn = urllib2.Request(host, post, headers)
        data = urllib2.urlopen(conn)
        cookie_src = data.info().get('Set-Cookie')
        self.cookie = re.sub(r'(expires=.*?;\s|path=\/;\s|domain=\.vkontakte\.ru(?:,\s)?)', '', cookie_src)        
        return self.cookie
        
    def friends(self):    
        cook = self.get_cookie()
        host = 'http://vkontakte.ru/friends_ajax.php'
        post = urllib.urlencode({'s' : self.get_s_value()})
        headers = {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.13) Gecko/2009073022 Firefox/3.0.13','Host' : 'vkontakte.ru','Referer' : 'http://login.vk.com/?act=login','Connection' : 'close','Cookie' : 'remixchk=5; '+cook,'Pragma' : 'no-cache','Cache-Control' : 'no-cache'}        
        conn = urllib2.Request(host, post, headers)
        data = urllib2.urlopen(conn)
        my_fr = str(data.read())
        return my_fr

Пример использования:

vk = Vkontakte(ваш email,ваш пароль)
print vk.get_cookie()

четверг, 31 марта 2011 г.

Python Создание анимированного графика # 23

Для того, чтобы уметь строить анимированный график, необходимо первоначально просто уметь строить график. Это описано в посте ранее.

Для того, чтобы оживить наш график, используется специальная функция библиотеки MayPlotLib - pylab.ion(). Но это не всё.

Технология такова: Используется цикл. Если вы хотите получить фиксированное количество кадров, то используется for, иначе - While. Перед получением нового кадра, мы стираем старый и добавляем новый.

среда, 30 марта 2011 г.

Python Построение графиков #22

Построение графика на язык Python можно сделать при использовании многих библиотек. Над этим вопросом я много поработал и сделал вывод - лучше всего использовать MatPlotLib.

По мнению многих программистов этот продукт работает быстрее всех. Хоть и молодой, но функций больше, чем в остальных. 

На этом сайте (http://sovety.blogspot.com/2007/10/9.html) перечислены все библиотеки по работе с графикой в Python, имеются сравнения.

Вот официальный сайт (http://matplotlib.sourceforge.net/), где имеется полная документация по этой библиотеке с огромным изобилием примеров. Но там всё на английском языке.

Рассмотрим самый простейший пример.
Нарисуем график вида y=f(x) (на данный момент без использования Glade)

Image

воскресенье, 27 марта 2011 г.

Python Glade пример. Калькулятор # 21

В данном примере вы увидите, как сделать калькулятор используя Glade и ваш редактор. Можно запрограммировать так, чтобы он вычислял математические функции, возводил в степень, извлекал корни любой степени...

Для начала создаём проект Glade, заполняем его элементами (кнопки, поля).
Image
Теперь переходим к исходному коду вашего проекта:

вторник, 22 марта 2011 г.

Python Glade простейший пример # 20

В данном примере вы увидите простейшую программу, которая сделает сложение числовых данных, которые будут введены в поля при нажатии кнопки.

Рассмотрим пошагово:

понедельник, 21 марта 2011 г.

Python Работа с Glade. Азы # 19

Если вы собираетесь работать с Glade в первые, то вам желательно прочитать предыдущий пост.

В этой статье будет рассматриваться, как связать проект Glade с вашей программой Python.

воскресенье, 20 марта 2011 г.

Python Начало работы с Glade # 18

Glade - это мощная платформа для создания оконных приложений на  Python.
В данном приложении мы создаём окно, все элементы к нему (надписи, кнопки, поля и т.д.), задаём события к элементам (если надо).

Специализируется Glade на создании GTK приложения, то есть для рабочего стола Gnome, но после компиляции будет работать везде.

В интернете можно встретить платформу wxPython. Лично я от неё отказался, она мне показалась неудобной и также я опирался на мнения знающих программистов. Для примера, большинство приложений дистрибутива Ubuntu, Debian были сделаны не без использования Glade (Gimp, GCalk, Synaptic...).

Для начала расскажу о ситуациях, где долго долбался из-за незнания, но всё же методом тыка и копания в интернет добился результата.

суббота, 19 марта 2011 г.

Python Словари # 17

Словари  - один из сложнейших типов данных в языке программирования Python.
Словарь можно охарактеризовать как изменяемый неупорядоченный набор пар
"ключ : значение".

Для того, чтобы лучше понять что это такое, вспомните как устроен англо-русский словарь:
dog - собака, apple - яблоко.
dog - это ключ, а собака - значение.

Синтаксис словаря выглядит следующим образом:

a = {'dog':'собака', ' apple':'яблоко'}

пятница, 18 марта 2011 г.

Python Списки # 16

В языке программирования Python списки, как и строки, являются упорядоченными последовательностями. Но в отличии от строк, списки состоят не из символов, а из объектов. Список находится между символами [..........]

пр. = [3, 5, 4, 748, 5466]


Списки могут состоять из различных объектов: из строк, чисел и других списков.
Списки, как и строки тоже можно соединять.

пр. a = [2, 4, 5, 6, 74] + [7878, 0, 968987, 5454654, 6546546]

Также можно из списков извлекать срез.

четверг, 17 марта 2011 г.

Python GTK Простейшее оконное приложение # 15

Для работы  с оконными приложениями используется библиотека GTK. На ней можно делать любые вещи связанные с окнами.

Естественно, чтобы использовать эту библиотеку, её надо импортировать.

Сейчас будет рассмотрен пример создания простого окна с кнопкой Hello World.

среда, 16 марта 2011 г.

Python Классы # 14

Класс - это пользовательский тип, состоящий из методов и атрибутов.

Инстанс (Вызов) класса создается путем вызова имени класса как функции с параметрами. Объект состоит из атрибутов и методов. 

Атрибут - это переменная, метод - это функция. Отличия метода от функции в том, что у него есть первый параметр - self.

Модель класса:

class имя_класса:
    инструкция 1
    ....
    инструкция N

вторник, 15 марта 2011 г.

Python Табулирование функций # 13

С помощью оператора цикла while удобно строить таблицы значений различных функций. Т.е. значения будут выстраиваться столбцами. По сути такие таблицы представляют собой список значений функции при различных значениях ее параметра.

В истории огромным желанием горели так сделать те, которые создавали таблицы значения логарифмов, синусов, косинусов, тангенсов углов и других математических функций. Например таблица Брадиса, которую великий математик составлял один и вручную, а именно от руки.

понедельник, 14 марта 2011 г.

Python Альтернативные ветки программы # 12

Оператор условия if имеет расширенный формат, позволяющий проверять несколько независимых друг от друга условий и выполнять один из блоков, поставленных в соответствие с этими условиями. Синтаксис оператора выглядит так:

if условие_1:
    программа_1
 
elif условие_2:
    программа_2
 
elif условие_3:
    программа_3
...
else:
    программа если условия не удовлетворяются


воскресенье, 13 марта 2011 г.

Pithon Функции (def) # 11

Ранее работая мы использовали встроенные функции Питона и функции из модулей,
которые входят в комплект его поставки.

Но мощь современных языков программирования заключается в том, что мы можем создавать свои собственные функции, и делается это очень просто.

Конструкция любой функции:


def название_функции(список параметров):
    программа

Правила выбора имени функции такие же, как у переменной. (см.Имена переменных # 3)

суббота, 12 марта 2011 г.

Python Цикл for # 10

В предыдущей статье уже рассматривался цикл while. Но это не единственный способ организации повторения какой либо "программы".

Также как и while, цикл for часто применяется. Используется для того, чтобы пройтись по упорядоченным элементам какого либо множества.

 Пример:

пятница, 11 марта 2011 г.

Python Цикл While # 9

Цикл - это выполнение одного и того же действия пока действует определённое условие. Применяется такой приём в программировании очень часто. Даже можно сказать, что нет ни одной сложной программы, где не использовался цикл.

Всего в языке Python два цикла: While, For. Сейчас будет рассматриваться While.

Также как и в операторе условия if, у цикла While имеется конструкция. Она довольна схожая.

while условие :
    программа


Пример:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
def primer_9():
    a=0
    b=10
    while b>a:
        print ('цикл выполнился '+str(a)+' раз')
        a=a+1  
def main():
    primer_9()
    return 0
 
if __name__ == '__main__':
    main()

четверг, 10 марта 2011 г.

Операционная система




Данный вопрос ранее не поднимался, но это играет роль в работе программиста.

А какую ОС вы используете?

Хотелось бы услышать и от вас ответ.

По моему мнению для работы большее предпочтение в сторону UNIX систем.

Лично сам работаю на UBUNTU. Удобство во многом.
И самое главное  - НЕТ ВИРУСОВ.

Python Оператор условия If # 8

Операторы условия и выбора являются неотъемлемой частью любого языка программирования. Суть работы является следующее:
если действие удовлетворяет условию, то выполняется программа заданная пользователем, иначе выполняется следующая.

Работа с оператором условия проста. Необходимо только знать конструкцию.
if условие :
    программа при 
    удовлетворении условия
else :
    программа при 
    неудовлетворении условия
Вот пример программы:

среда, 9 марта 2011 г.

Python Операторы ввода и вывода информации на экран # 7

Запрос для значения переменных осуществляется с помощью операторов ввода. Сообщение о значении переменных и результаты арифметических вычислений реализуются с помощью операторов вывода.
В основном с операторов ввода или вывода начинается изучение любого языка программирования. В этом разделе мы ограничимся рассмотрением функции raw_input() и оператора print(). Ввод в Python производится с помощью клавиатуры, а вывод - на экран дисплея.

вторник, 8 марта 2011 г.

Python Вычисление сложных математических функций # 6

То, что сейчас будет описано применяется не часто, но знать это нужно обязательно. Имеется ввиду такие действия как вычисление квадратного корня, синуса, косинуса и др. Первым шагом обязательно надо импортировать библиотеку math. В ней и содержатся математические функции. Чтобы выполнить какое нибудь вычисление надо написать math.функция(значение)

Функции в библиотеке math:

math.ceil(x)
Возвращает округленное x как ближайшее целое значение типа float, большее или равное x (округление "вверх").

math.copysign(x, y)
Возвращает число x со знаком числа y. На платформе, поддерживающей знак нуля copysign(1.0, -0.0) даст -1.0.

math.fabs(x)
Возвращает абсолютное значение (модуль) числа x. В Python есть встроенная функция abs, но она возвращает модуль числа с тем же типом, что число, здесь же всегда float abs (fabs).

math.factorial(x)
Возвращает факториал целого числа x, если x не целое возбуждается ошибка ValueError.