Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [Python] вопрос/ответ. (https://forum.antichat.xyz/showthread.php?t=102344)

De-visible 21.01.2009 02:53

[Python] вопрос/ответ.
 
Для тех кто собирается начать программировать на Python.

Цитата:

Софт
Интерпретатор Python(качать Python x.x.x Windows installer, где x.x.x - версия)
Ссылка: http://python.org/download/
Среда eclipse: (качать Eclipse Classic)
Ссылка: http://www.eclipse.org/downloads/
На эту среду надо будет поставить плагин для Python, Pydev
ссылка на него: http://sourceforge.net/project/showfiles.php?group_id=85796
Первый раз запускать с ключом коммандной строки -clean(дописать в ярлычок, после запуска убрать)
Книги
Язык программирования Python. Г.Россум, Ф.Л.Дж.Дрейк, Д.С.Откидач и др.
Ссылка: http://nerezus.ifolder.ru/7768594
Язык программирования Python. Сузи Р.А.
Ссылка: http://nerezus.ifolder.ru/7768667
Полезные ресурсы:

Python WIKI: http://ru.pywiki.com/
Wiki Python: http://ru.wikipedia.org/wiki/Python
Поисковик для Python: http://www.google.com/coop/cse?cx=009415166068715484302:5o_xkxqckma
Русскоязычный сайт по Python: http://www.python.ru/
Официальный сайт по Python: http://www.python.org/
Также можно использовать эти поисковики:
http://www.codenet.ru/
http://www.koders.com/
http://code.google.com/intl/ru-RU/
Python Library: http://docs.python.org/library/index.html

login999 21.01.2009 09:01

Python FAQ
 
Python FAQ
Итак, интерпретатор CPython (стандарт Де Факто):

http://python.org/download/
Python 2.* - это последние версии интерпретатора второй ветки
Python 3.* - это последние версии интерпретатора третьей ветки

Внимание! Третья ветка несовместима со второй
Практически все сторонние модули в данный момент написаны для второй ветки Python.

Стандартная библиотека для второй ветки Python :http://docs.python.org/2.6/modindex.html

Стандартная библиотека для третьей ветки Python :http://docs.python.org/3.1/modindex.html

Стандартная библиотека к изучению обязательна, таким образом вы будете задавать намного меньше тупорылых вопросов =/
Фреймворки :
---Web :
Django - мощный фреймворк для разработки веб-приложений
Pylons - "лёгкий" фреймворк для веб-программирования
TurboGears - мощный фреймворк для веб-программирования
Zope - мощный фреймворк для веб-программирования, очень мощный

---Network:
Twisted - сетевой фреймворк для асинхронного программирования

---Gui :
PyGTK - фреймворк для разработки Gui, привязка к GTK+
PyQt - фреймворк для разработки Gui, привязка к Qt
wxPython - фреймворк для разработки Gui, привязка к wxWidgets

Литература :

По русски :
http://ru.wikibooks.org/wiki/Учебник_Python_2.6 - Перевод туториала, написанного автором языка
Книга от Сузи Р.А.
Перевод Djangobook

По английски :
Dive into python 3
Книга по Django

Разная литература

http://users.physik.fu-berlin.de/~goerz/refcards/python_refcard.pdf - Памятка по средствам языка


Русскоязычный форум по Python :
http://python.su/forum/

Дальше будут IDE

Chaak 21.01.2009 09:41

Как в urllib2 cделать, чтобы скрипт не переходил по редиректу?

login999 21.01.2009 11:05

http://diveintopython.org/http_web_services/redirects.html

А если конкретнее, то :
Цитата:

class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_301(self, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(
self, req, fp, code, msg, headers)
result.status = code
return result

def http_error_302(self, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_302(
self, req, fp, code, msg, headers)
result.status = code
return result
Я бы сделал try: except который бы чекал на редирект, а потом, если редиректа нету, то делал бы необходимое
P.S. Подобными задачами никогда не занимался :) Скорее наоборот, так что поконкретнее ничего не скажу, и инет лагает, чтобы нормально проверить :(

login999 21.01.2009 11:31

А вообще, то лучше было бы попробовать для этого что то типа этого:
Код:

redir=urllib2.urlopen("www.someurl.com").geturl()
if "REDIR" in str(redir):
    pass
else:
    blah-blah-blah


Chaak 21.01.2009 18:42

Мне требуется авторизоваться на одном сайте, и отловить кукисы.

Вот как сюда прикрутить отловку?
PHP код:

def getPage(urlproxy ""cookies ""data ""referer ""timeout 10):
    
req urllib2.Request(urldata);

    if 
proxy != "":
        
req.set_proxy(proxy,"http");
    
    
req.add_header("Cookie"cookies);
    
req.add_header("Referer"referer);
    
req.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5");
 
    try:
        
res urllib2.urlopen(reqdatatimeout);
    
except:
        return 
"none";

    return 
res.info(); 


De-visible 21.01.2009 20:22

И в чем сложность?

Тяжело просмотреть Set-cookie?

Код:

req = urllib2.Request("http://www.google.com/")
f = urllib2.urlopen(req).info()
print f


Chaak 21.01.2009 20:24

Дык у меня редирект проскакивает, а кукисы не ловит =\\\

De-visible 21.01.2009 20:38

Цитата:

Сообщение от ChaaK
Дык у меня редирект проскакивает, а кукисы не ловит =\\\

насчет редиректа тебе объяснили выше.

http://mail.python.org/pipermail/python-list/2004-December/296259.html

login999 22.01.2009 17:27

Вот тебе кусок, где urllib2 хватает кукисы:
Код:

import cookielib,urllib,urllib2
        cookie = cookielib.CookieJar()
        if proxy is not None:
            opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie),proxy)
        else:
            opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
        urllib2.install_opener(opener)
        headers = {"User-Agent" : "Mozilla/4.0 (compatible; MSIE 5.5; WindowsNT)" }
        login_info=[
        ("Login",login),
        ("Password",password)
        ]
        login_post_data = urllib.urlencode(login_info)
        try:
            login_request=urllib2.Request("http://www.google.com/", login_post_data, headers)
            login_response=str(urllib2.urlopen(login_request).read())

2 Chaak - думаю, по примеру поймешь, что к чему, как отлавливать редирект, я написал выше

De-Visible, это часть того, о чем мы говорили :)


Время: 22:28