Просмотр полной версии : [Python] вопрос/ответ.
login999
03.01.2010, 18:12
Я только начал учить питон, так что если люди, которые смогут помогать, подсказывать? Если чего напишите аську.
Бегу-бегу, с ног сбиваюсь.
вот у меня вопрос.
версии интерпретатора 2 и 3, у них синтаксис одинаковый?
нашел книгу "Язык программирования Python" Д.С. Откидач, Г.Россум, Дж.Дрейк,
в ней пишет что : "в книге описаны наиболее распостраненные версии Python от 1.5 до 2.0", но у меня интерпретатор 3.0(подумал что самый актуальный и скачал его).
так можно ли работать с интерпретатором версии 3.0, изучая данную книгу?
мб посоветуйте другую книгу.
P.S. я только начинаю програмировать)
вот у меня вопрос.
версии интерпретатора 2 и 3, у них синтаксис одинаковый?
нашел книгу "Язык программирования Python" Д.С. Откидач, Г.Россум, Дж.Дрейк,
в ней пишет что : "в книге описаны наиболее распостраненные версии Python от 1.5 до 2.0", но у меня интерпретатор 3.0(подумал что самый актуальный и скачал его).
так можно ли работать с интерпретатором версии 3.0, изучая данную книгу?
мб посоветуйте другую книгу.
P.S. я только начинаю програмировать)
Лучше пока сидеть на 2.x,на 3 мало что перенесено.
Книгу посоветую "изучаем python 3-е издание".
Rushter На просторах интернета встречал модуль для этих дел назывался вроде Universal Encoding.
Или для чего тебе это нужно? может проще в юникод а потом в ту которую надо?
Вопросик: Что лучше почитать про джанго (Django) начиная с его азов?
Чтобы в юникод сконвертить надо знать какая кодировка у файла на входе.
Запрос у юзера - самый нормальный вариант.
Вообще не вариант,заюзал chardet.Всёравно юзерам в виде exe даю :)Определяет быстро,то что надо.
Нашёл интересное решение в виде регулярки,но к сожалению не всегда правильно определяет, пришлось использовать доп модуль.
спс! скажите мб кто то видел сборник статей для питона?
login999
04.01.2010, 10:06
спс! скажите мб кто то видел сборник статей для питона?
pyplanet.ru
login999
04.01.2010, 10:10
Вообще не вариант,заюзал chardet.Всёравно юзерам в виде exe даю :)Определяет быстро,то что надо.
Нашёл интересное решение в виде регулярки,но к сожалению не всегда правильно определяет, пришлось использовать доп модуль.
Ну я вот по жизни использую запрос у юзера - проблем никаких никогда не возникает. Данные в конфиг себе забиваются, потом из него считываются, да и все :) Норм юзер всегда знает, какая у него кодировка :) Да и выбирать там особо не из чего - UTF-8 или cp1251
еще есть вопрос: что такое django?
еще есть вопрос: что такое django?
фреймворк для построения веб-приложений на python'e
Ну я вот по жизни использую запрос у юзера - проблем никаких никогда не возникает. Данные в конфиг себе забиваются, потом из него считываются, да и все :) Норм юзер всегда знает, какая у него кодировка :) Да и выбирать там особо не из чего - UTF-8 или cp1251
А ты думаешь юзеру в кайф указывать кодировку 15 файлам,или держать эти 15 файлов только в 1 кодировке ? :)
login999
04.01.2010, 19:01
А ты думаешь юзеру в кайф указывать кодировку 15 файлам,или держать эти 15 файлов только в 1 кодировке ? :)
Насчет указания кодировки 15 файлам - это да.
А вот насчет 15 файлов в разных кодировках, то я такого изврата еще не видел. Не вижу смысла практического использования даже.
Код на Пёрле:
my $per = pack('V', 0x71AB9372);
Как сделать аналогично на Питоне?
login999
05.01.2010, 15:38
import struct
per = struct.pack("<L", 0x71AB9372)
Дальше в зависимости от того что и как там нужно.
Смотри справку по модулю struct
upd. Кажется так (аналог "V" для PERL, если я не ошибаюсь)
Ice_VeNOm
08.01.2010, 14:47
def bash():
res = urllib.request.urlopen('http://bash.org.ru/random')
res= str(res.read())
s=re.search(r"<div>(.*?)<\/div>",res)
for x in s.groups():
print(x.decode('cp1251'))
AttributeError: 'str' object has no attribute 'decode'
Как сделать, чтобы выводил русский текст?
python v. 3.1
login999
08.01.2010, 15:03
def bash():
res = urllib.request.urlopen('http://bash.org.ru/random')
res= str(res.read())
s=re.search(r"<div>(.*?)<\/div>",res)
for x in s.groups():
print(x.decode('cp1251'))
Как сделать, чтобы выводил русский текст?
python v. 3.1
В 3.1. по-другому нужно
попробуй так.
res = urllib.request.urlopen('http://bash.org.ru/random')
res= res.read()
s=re.search(r"<div>(.*?)<\/div>",res)
for x in s.groups():
print(x.decode('cp1251').encode("cp866"))
Ice_VeNOm
08.01.2010, 15:08
Таже самая ошибка
login999
08.01.2010, 15:12
res = urllib.request.urlopen('http://bash.org.ru/random')
res= res.read().decode('cp1251')
s=re.search(r"<div>(.*?)<\/div>",res)
for x in s.groups():
print(x.encode("cp866"))
А так ?
П.С. Винда ?
Я делаю так:
# -*- coding: UTF-8 -*-
text = "Текст"
print(text)
Храню текст не в юникоде.Ещё бывает помогает
print text.decode("utf-8","ignore")
Бред,но пока не подводил :)
В твоём случае можно сделать вот так:
# -*- coding: UTF-8 -*-
import re,urllib
res = urllib.urlopen('http://bash.org.ru/random')
res= res.read().decode('cp1251')
s=re.search(r"<div>(.*?)<\/div>",res)
for x in s.groups():
print(str(x))
Проверил на 2.6,работает.Все эти способы бредовые,но нормальных я не нашёл.
login999
08.01.2010, 16:11
Я делаю так:
Бред,но пока не подводил :)
Там в 3.1 меня напрягает этот bytes тип данных. Мне, как привыкшему к 2.6 сложно выкупить там все эти хитросплетения. Фактически, у bytes есть возможность сделать только .decode(), после которого они превращаются в str в кодировке UTF-8, обьекты типа str можно только encode() в bytes кодировки, указанной при вызове encode(). Т.е после .decode получаем str с возможностью вызова только .encode(), а после encode() получаем bytes с возможностью вызова исключительно .decode() для получения str.
Какая-то блин слишком strict работа с кодировками ИМХО.
Я привык к типу данных unicode в 2.6 который мне уже кажется очень простым и гибким при работе с кодировками.
Хотя я конечно, в экстазе от:
import sys
def жаба():
print "Я квакаю".encode(sys.getdefaultencoding())
Судя по отсутствию комментов к этому посту скорее всего все подумали "Какого хрена он это написал???"
Обьясню код от rushter с точки зрения Python 3.1 и Python 2.6:
# -*- coding: UTF-8 -*-
import re,urllib
res = urllib.urlopen('http://bash.org.ru/random')
res= res.read().decode('cp1251')#Вот здесь вот с точки зрения Python2.6 Идет: .read() - чтение данных, которые имеют тип str(некая абстрактная строка в неизвестной кодировке(для python)),потом идёт перевод этой строки в тип unicode(это для Python едино и понятно). С точки зрения Python3.1 здесь при .read() идёт чтение в этот новый тип bytes, которые представляют собой "просто байты", работать с этим типом как со строковыми данными нельзя, для этого необходимо сделать .decode() из кодировки этих байтов, в результате чего они преображаются в тип str, который являет собой строку в кодировке UTF-8 (фактически, насколько я понял, str - это тот же unicode, просто что все четко прописано)
s=re.search(r"<div>(.*?)<\/div>",res)
for x in s.groups():
print(str(x))#Вот здесь идет вывод собранных данных в консоль, вот здесь то меня и напрягает то, что на печать все пошло нормально, либо Python автоматически переводит весь вывод в кодировку терминала, либо у Ice_VeNOm кодировка терминала - UTF-8. И вот такое преображение в str()оно здесь не нужно нафик (по идее)
Хз короче, путаница одна с этим Python 3.1. Мб кто из опытных обьяснит, что там с этим bytes и str, ато я вроде и понимаю что они это типа аналог unicode из 2.6, и все равно как-то стремно их воспронимать так же =\
Ice_VeNOm
08.01.2010, 17:43
rushter, Спасибо
есть скрипт, парсер лог файла, после парсинга данные заносятся в базу
попытался скомпилировать в exe, после запуска ехешника получил ошибку
попробовал скомпилировать простейший скрипт print "Hello World!" - все нормально ехешник работает
попробовал добавить первые строки кода парсера
import re
import time
import os
import MySQLdb
получил ошибку
D:\Python!\PARSER\dist>hello.exe
Traceback (most recent call last):
File "hello.py", line 4, in <module>
File "MySQLdb\__init__.pyc", line 19, in <module>
File "_mysql.pyc", line 12, in <module>
File "_mysql.pyc", line 10, in __load
ImportError: DLL load failed: =х эрщфхэ єърчрээvщ ьюфєы№.
как решить эту проблему с mysqldb?
login999
08.01.2010, 21:20
есть скрипт, парсер лог файла, после парсинга данные заносятся в базу
попытался скомпилировать в exe, после запуска ехешника получил ошибку
попробовал скомпилировать простейший скрипт print "Hello World!" - все нормально ехешник работает
попробовал добавить первые строки кода парсера
import re
import time
import os
import MySQLdb
получил ошибку
D:\Python!\PARSER\dist>hello.exe
Traceback (most recent call last):
File "hello.py", line 4, in <module>
File "MySQLdb\__init__.pyc", line 19, in <module>
File "_mysql.pyc", line 12, in <module>
File "_mysql.pyc", line 10, in __load
ImportError: DLL load failed: =х эрщфхэ єърчрээvщ ьюфєы№.
как решить эту проблему с mysqldb?
Посмотри какие там есть DLL-ки и закинь их в c:\python\dll
P.S. Рекомендую GUI2exe - это написанный на wxpython Гуи-интерфейс для "Собиралок" в экзе
по совету с другого форума уже посмотрел с помощью depends каких длл не хватает и прописал их в setup.py
все заработало
но есть еще один вопрос, запускаю ехе через командную строку
вначале идет такая строка
D:\Python!\PARSER\dist\library.zip\MySQLdb\__init_ _.py:34: DeprecationWarning: the sets module is deprecated
что то про устаревший модуль, стоит разбираться с этим или ничего страшного?
login999
08.01.2010, 23:23
по совету с другого форума уже посмотрел с помощью depends каких длл не хватает и прописал их в setup.py
все заработало
но есть еще один вопрос, запускаю ехе через командную строку
вначале идет такая строка
D:\Python!\PARSER\dist\library.zip\MySQLdb\__init_ _.py:34: DeprecationWarning: the sets module is deprecated
что то про устаревший модуль, стоит разбираться с этим или ничего страшного?
Ничего страшного, это простой ворнинг, не более того. это информация на заметку скорее для разработчиков py2exe, чем для тех кто им пользуется :)
на ХР все работает без проблем
попробовал на винсервер 2003
программа зависает и через секунд 10 закрывается без ошибок
проверил длл - не хватало msjava.dll и msvcr90.dll
добавил, попробовал снова запустить - все равно зависает
поставил туда питон
запускаю скрипт
зависает на этой строке
db = MySQLdb.connection(host="localhost", user="root", passwd="", db="test")
висит 5-10 секунд, потом и редактор и шелл закрываются без ошибки
в чем может быть проблема?
login999
12.01.2010, 10:09
на ХР все работает без проблем
попробовал на винсервер 2003
программа зависает и через секунд 10 закрывается без ошибок
проверил длл - не хватало msjava.dll и msvcr90.dll
добавил, попробовал снова запустить - все равно зависает
поставил туда питон
запускаю скрипт
зависает на этой строке
db = MySQLdb.connection(host="localhost", user="root", passwd="", db="test")
висит 5-10 секунд, потом и редактор и шелл закрываются без ошибки
в чем может быть проблема?
Смахивает на то, что по таймауту рвет соединения. А мускул крутится ?
P.S. Попробуй через командную строку запустить. Мб фаер режет.
через командную строку вроде пустило
D:\webserver\MySQL Server 5.1\bin>mysql -u root -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.39-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
мускул работает нормально т.е. скрипт на пхп из мускула данные забирают без проблем
login999
12.01.2010, 20:13
через командную строку вроде пустило
D:\webserver\MySQL Server 5.1\bin>mysql -u root -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.39-community MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
мускул работает нормально т.е. скрипт на пхп из мускула данные забирают без проблем
Я имею ввиду мб фаер режет саму твою екзеху.
Попробуй запустить именно собранную тобой exe через консоль. Там тебе должно показать трейсбек (естественно, только в том случае, если на критической секции ошибка не убивается простым try: except что чревато "безмолвным"слетанием).Просто даже если там ошибка какая-то то не факт что ты ее увидишь - окно слишком быстро закрывается.
через командую строку тоже самое
никакой ошибки
try: except в том куске кода нет
и фаера тоже не стоит там...
gold-goblin
12.01.2010, 21:04
мускул на какой оси крутится?
Посмтри конектица питон или нет.
win server 2003
как посмотреть?
import sys
import string
if len(sys.argv)<2:
print "Usage: leap.py year, year, year."
sys.exit(0)
for i in sys.argvj[:]:
try:
y=string.atoi(i)
except:
print i,"is not a year."
continue
leap="no"
if y%400==0:
leap="yes"
elif y*100==0:
leap="no"
elif y%4==0:
leap="yes"
else:
leap="no"
print y, "leap:", leap, "in the Gregorian calendar"
if y%4==0:
leap="yes"
else:
leap="no"
print y, "leap:", leap, "in the Julian calendar"
print "Calculated leapness for", len { sys.argv ) - 1, "years"
Посмотрите пожалуйста что не так с Кодом :(
Кто знает... ?
Код:
...
gamma_N=round(float(gamma_0**2),8)
#print '%F' %(gamma_N)
i=i+1
ls=str(gamma_N)
ls=ls[2:9]
ls='0.'+ls
print '%F' %(float(ls))
lch=round(float(ls)**2,8)
gamma_0=lch
print ''
...
Это часть метода серединных квадратов... проблема в том, что после получения среза строки, необходимо преобразовать строку во флоат, но как выяснилось переменная получает число в экспоненциальном виде: 0.5e+006 , что нить такое.. ну и следовательно не получается перегнать во флоат.. Как избежать такой формы записи?! надо чтоб было 0.0000005 например, без всяких e....
gold-goblin
13.01.2010, 01:30
win server 2003
как посмотреть?
в консоле мускул сервера набрать команду хммм если честно не помню =)
попробуйте поискать в интернете или сделать вот что: после завершения скрипта в консоле мускула введите mysql_error это пакежет последнюю ошибку (тоесть ошибку подключения вашего клиента)
gold-goblin
13.01.2010, 01:35
экспоненциальном виде: 0.5e+006 , что нить такое.. ну и следовательно не получается перегнать во флоат.. Как избежать такой формы записи?! надо чтоб было 0.0000005 например, без всяких e....
если память не подводит то перед преобразованием надо использовать функцию abs()
gold-goblin
18.01.2010, 17:51
Помогите с регулярками плиз =)
Блин что-то я их не понимал и понять не могу =(
Помогите составит регулярку чтоб выдрать строку вида: http://****.ru или http://***.***.ru Буду благодарен =)
login999
18.01.2010, 18:29
Помогите с регулярками плиз =)
Блин что-то я их не понимал и понять не могу =(
Помогите составит регулярку чтоб выдрать строку вида: http://****.ru или http://***.***.ru Буду благодарен =)
import re
data = "http://vasya.ru ,http://super.vasya.ru"
links_1 = re.findall(r'''(http\:\/\/.*?\.ru)''', data)
links_2 = re.findall(r'''(http\:\/\/.*?\..*?\.ru)''', data)
links_3 = re.findall(r'''(http\:\/\/.*?\.ru)|(http\:\/\/.*?\..*?\.ru)''', data)
print links_1
print links_2
print links_3
Правда не совсем то
по регуляркам вот тут хорошая статьи
http://www.intuit.ru/department/pl/python/6/5.html
там есть скрипт дебаг регулярных выражений
тут такой вопрос возник
как перезапустить скрипт? т.е. не стартануть его "копию" после завершения
а именно чтобы программа начала выполняться сначала
update
нашел вроде бы простое решение
сделать бесконечный цикл
while True:
какие подводные камни могут всплыть?
gold-goblin
20.01.2010, 14:24
Бесконечный цикл самое надежное решение (ИМХО).
Подводных камней быть не должно. Могут возникнуть проблемы с потоками (если ты их используешь) при условии что 1 из потоков не завершится (со временем их станет очень много.)
login999
20.01.2010, 20:23
по регуляркам вот тут хорошая статьи
http://www.intuit.ru/department/pl/python/6/5.html
там есть скрипт дебаг регулярных выражений
тут такой вопрос возник
как перезапустить скрипт? т.е. не стартануть его "копию" после завершения
а именно чтобы программа начала выполняться сначала
update
нашел вроде бы простое решение
сделать бесконечный цикл
while True:
какие подводные камни могут всплыть?
Для дебага регулярок есть Kodos.
Относительно бесконечной работы - всё зависит от того, что ты хочешь именно, но обычно while True хватает за глаза.
login999
21.01.2010, 01:12
Vaal,
через рекурсию
Враки.
#! /usr/bin/env python
#-*-encoding:UTF-8-*-
import sys
print u"Ваша функция может выполниться максимум {0} раз".format(sys.getrecursionlimit())
ну пока вроде цикл работает без проблем
такой еще вопрос
читается лог
with open(path2mislog, 'r') as f:
logfile = f.readlines()
f.closed
logfile = list(set(logfile))
logfile = sorted(logfile)
из него удаляются одинаковые строки
после чего слетает сортировка по времени
сортирую
но события которые происходят в одно и тоже время не всегда встают на места
это можно как то исправить?
login999
23.01.2010, 22:51
ну пока вроде цикл работает без проблем
такой еще вопрос
читается лог
with open(path2mislog, 'r') as f:
logfile = f.readlines()
f.closed
logfile = list(set(logfile))
logfile = sorted(logfile)
из него удаляются одинаковые строки
после чего слетает сортировка по времени
сортирую
но события которые происходят в одно и тоже время не всегда встают на места
это можно как то исправить?
Лично я - хз как, я бы удаление дублей делал бы в таком случае не так - создавал бы два массива, а потом циклом гонял бы по одному и вставлял в другой массив - тогда должен сохраниться порядок
daniel_1024
23.01.2010, 23:34
есть скрипт парсинга гугла по определенному запросу и запись результатов в текстовик:
#!usr/bin/env python3
dork = 'inurl:page_id+"Gallery+powered+by+fMoblog"'
page = 10
reg = 'class=r»«a href="([^"&]*)'
print "# start"
print "# dork:" + dork
print "# all page: " + str(page)
fo = open('google.txt','w')
print "# google.txt open"
import curl
import time
import re
for i in xrange(0,page):
url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10)
rez = curl.url_get(url)
rez = re.findall(reg,rez)
for item in rez:
fo.write(item+"\n")
print "# page "+str(i+1)+" done"
time.sleep(2)
fo.close
print '# all done'
он не работает...в чем ошибка ?
ругается на строку
url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10)
login999
24.01.2010, 01:40
есть скрипт парсинга гугла по определенному запросу и запись результатов в текстовик:
#!usr/bin/env python3
dork = 'inurl:page_id+"Gallery+powered+by+fMoblog"'
page = 10
reg = 'class=r»«a href="([^"&]*)'
print "# start"
print "# dork:" + dork
print "# all page: " + str(page)
fo = open('google.txt','w')
print "# google.txt open"
import curl
import time
import re
for i in xrange(0,page):
url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10)
rez = curl.url_get(url)
rez = re.findall(reg,rez)
for item in rez:
fo.write(item+"\n")
print "# page "+str(i+1)+" done"
time.sleep(2)
fo.close
print '# all done'
он не работает...в чем ошибка ?
ругается на строку
url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10)
Наверное потому что ты забил на отступы.
До тех пор пока будешь Python-код подсвечивать как PHP-код, то у тебя ни один из скриптов работать и не будет.
Лично я - хз как, я бы удаление дублей делал бы в таком случае не так - создавал бы два массива, а потом циклом гонял бы по одному и вставлял в другой массив - тогда должен сохраниться порядок
кажется то что нужно?
http://stackoverflow.com/questions/1801459/algorithm-how-to-delete-duplicate-elements-in-a-list-efficiently/1801471#1801471
login999
24.01.2010, 21:25
кажется то что нужно?
http://stackoverflow.com/questions/1801459/algorithm-how-to-delete-duplicate-elements-in-a-list-efficiently/1801471#1801471
Ну хз, я там вижу большинство кода на других ЯП :)
Для питона основное решение там - это то, что я предлагал.
Моё решение :
def remove_dupies(lst):
sorted_lst = []
for x in lst:
if x not in sorted_lst:
sorted_lst.append(x)
return sorted_lst
with open(path2mislog, 'r') as f:
logfile = f.readlines()
f.closed
logfile = remove_dupies(logfile)
logfile = sorted(logfile)
Никакой оригинальности/производительности. Тривиальное решение, которое подхавает оперативки в двухкратном размере файла. Если нужно что-то покруче, то хз придется изьёбываться :)
CyberHunter
24.01.2010, 22:05
есть скрипт парсинга гугла по определенному запросу и запись результатов в текстовик:
#!usr/bin/env python3
dork = 'inurl:page_id+"Gallery+powered+by+fMoblog"'
page = 10
reg = 'class=r»«a href="([^"&]*)'
print "# start"
print "# dork:" + dork
print "# all page: " + str(page)
fo = open('google.txt','w')
print "# google.txt open"
import curl
import time
import re
for i in xrange(0,page):
url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10)
rez = curl.url_get(url)
rez = re.findall(reg,rez)
for item in rez:
fo.write(item+"\n")
print "# page "+str(i+1)+" done"
time.sleep(2)
fo.close
print '# all done'
он не работает...в чем ошибка ?
ругается на строку
url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10)
Скажите как изменить чтобы работал? Как раз нужен подобный скрипт :)
login999
25.01.2010, 10:22
Скажите как изменить чтобы работал? Как раз нужен подобный скрипт :)
Эмм, если честно, то я не уверен что он вам подойдёт, если обратите внимание на то, что он требует pyCURL и знание питоновских регулярок...
Лучше уж пропросите чтоб Вам его переписали под стандартную библиотеку...
Но на всякий случай :
#!usr/bin/env python3
import re
import curl
import time
dork = 'inurl:page_id+"Gallery+powered+by+fMoblog"'
page = 10
reg = 'class=r»«a href="([^"&]*)'
print "# start"
print "# dork:" + dork
print "# all page: " + str(page)
fo = open('google.txt','w')
print "# google.txt open"
for i in xrange(0,page):
url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10)
rez = curl.url_get(url)
rez = re.findall(reg,rez)
for item in rez:
fo.write(item+"\n")
print "# page "+str(i+1)+" done"
time.sleep(2)
fo.close
print '# all done'
P.S. pyCURL под рукой нету чтобы проверить, но должно работать.
daniel_1024
25.01.2010, 21:49
login999 подскажи пожалуйста что надо с pyCURL делать ? как подключить ? скачал я из инета набор файлов отсюда (http://pycurl.sourceforge.net/download/pycurl-7.19.0.tar.gz) , что дальше?! :)
gold-goblin
26.01.2010, 01:34
он не работает...в чем ошибка ?
Так же гугл отбрасывает сторонние юсерагенты.
login999 подскажи пожалуйста что надо с pyCURL делать ? как подключить ? скачал я из инета набор файлов отсюда , что дальше?!
Гугл в помощь =) Какая версия питона? а так http://python.su/forum/viewtopic.php?id=3985
login999
26.01.2010, 03:34
Вот експлоит на питоне, как его запустить на денвере, ось Win!!!
http://www.securitylab.ru/poc/extra/389859.php
не работает, хочу проверить ...
Кому не сложно помогите!!!
Експлоит поидеи через ошибку в интернет испортил (IE6,IE7) выполняет произвольный код!!! (там поидеи калькулятор запуститься должен)
Уважаемый, учите матчасть :)
Тот сплойт что на секлабе запускает собственный веб-сервер.
Код не смотрел, так что по этому поводу не скажу ничего.
Ставишь питон с python.org.
Потом тупо запускаешь скрипт(двойной щелчок) должно запуститься консольное окошко.
После этого заходишь через браузер на локалхост.
Дальше, я думаю, все понятно :)
login999
26.01.2010, 03:38
login999 подскажи пожалуйста что надо с pyCURL делать ? как подключить ? скачал я из инета набор файлов отсюда (http://pycurl.sourceforge.net/download/pycurl-7.19.0.tar.gz) , что дальше?! :)
По поводу pyCURL то насколько я помню, официально под вынь не поддерживается. Недавно, кстати товарищ поднимал этот вопрос на ачате (не помню уже кто). Так что установка pyCURL под вынь - занятное и нетривиальное дело :).
Короче, не хотелось бы обсырать чужой код, но приведенный выше "парсер" - это кусок гуано, причем самого мерзкого пошиба. Я тебе такой за полторы минуты нацарапаю. Если проснусь завтра с у тра (или уже сегодня =\) - то выделю десять минут и нацарапаю какашку по типу той что приведена выше, но без pyCURL...
login999
27.01.2010, 10:28
#!/usr/bin/env python
#-*-encoding:UTF-8-*-
import re
import urllib2
import time
HEADERS = {
"User-Agent" : "Opera/9.64 (Windows NT 5.1; U; en) Presto/2.1.1",
"Accept" : "text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1",
"Accept-Language" : "ru,uk-UA;q=0.9,uk;q=0.8,en;q=0.7",
"Accept-Charset" : "iso-8859-1, utf-8, utf-16, *;q=0.1",
"Accept-Encoding" : "identity, *;q=0",
"Connection" : "Keep-Alive"
}
def curl_url_get(url):
request = urllib2.Request(url, headers=HEADERS)
data = urllib2.urlopen(request).read()
return data
dork = 'inurl:page_id+"Gallery+powered+by+fMoblog"'
page = 10
reg = 'class=r»«a href="([^"&]*)'
print "# start"
print "# dork:" + dork
print "# all page: " + str(page)
fo = open('google.txt','w')
print "# google.txt open"
for i in xrange(0,page):
url = "http://www.google.com/search?q="+dork+"&start=" + str(i*10)
rez = curl_url_get(url)
rez = re.findall(reg,rez)
for item in rez:
fo.write(item+"\n")
print "# page "+str(i+1)+" done"
time.sleep(2)
fo.close
print '# all done'
Кому там нужен типа гуглопарсер.
Из того парсера просто убрал pyCURL, не более того.
То что он ничего не находит это не значит, что я там чего-то накосячил.
Регулярка там кривая нах =\.
P.S. Под Python 2.6
login999
https://forum.antichat.ru/showthread.php?p=1838949#post1838949
http://docs.python.org/library/json.html
taxpayer
27.01.2010, 21:14
daniel_1024:
http://python.org/download/releases/2.5.4
http://pycurl.sourceforge.net/download/pycurl-ssl-7.18.2.win32-py2.5.exe
Инсталлеры с офф паг, не со сторонних ресурсов
Чесно говоря, не вижу смысла использовать для доркера пикурл, если в задачу не входит использование соксов, вполне хватит стандартных либ
login999
27.01.2010, 21:40
py2.5
...
CyberHunter
27.01.2010, 22:01
Скажите что случилось? Раньше все программы мог запустить, а сейчас - в консоли пишу все как раньше, пишет неверный путь. Путь введен верно 100%. В чем может быть проблема? Переустановил интерпретатор в стандартную директорию, не помогло. Хз что случилось...
login999
27.01.2010, 23:26
Скажите что случилось? Раньше все программы мог запустить, а сейчас - в консоли пишу все как раньше, пишет неверный путь. Путь введен верно 100%. В чем может быть проблема? Переустановил интерпретатор в стандартную директорию, не помогло. Хз что случилось...
Скриншот/трейсбек ф студию :)
gold-goblin
28.01.2010, 22:03
Скриншот/трейсбек ф студию :)
+5 и с новой авой =)
CyberHunter
30.01.2010, 16:59
Скриншот/трейсбек ф студию
Уже все пашет)
Вот другой вопрос:
Есть код типа:
if x == 5:
print("asdf"),
elif x<5:
print("asddddf"),
elif x>5:
print("aaaaaa")
как сделать так чтобы при каждом запуске надо вводить значение х?
login999
30.01.2010, 18:39
x = input()
Бить по рукам за input()
Нужно юзать raw_input().
Это в тройке только сделали input = raw_input()
При input() выражение прогоняется через eval() что есть некошерно. Естественно, это не относится к тройке.
П.С. Читайте учебник - там всё это есть...
043nKRuT0y
30.01.2010, 19:28
Всем привет ! Пробовал я потестить Google App Engine - поставил я SDK - установка прошла нормально , но вот создал я значит простое приложение , пишу в консоле
dev_appserver.py testpr
- и обламываюсь , никакой сервер не стартует, пытаясь потом запустить приложение через иконку получаю в ответ
See the logfile 'C:\Program Files\Google_appengine\launcher\GoogleAppEngineLau ncher.exe.log' for details
Как решить проблему , и как собственно заставить данный тестовый сервер работать !?
В лог файл не судьба посмотреть в чем причина проблемы?
CyberHunter
30.01.2010, 20:03
П.С. Читайте учебник - там всё это есть...
Читал, но не понял!
Вот вопрос:
Какой должен быть код?
x = raw_input()
if x == 5:
print("asdf"),
elif x<5:
print("asddddf"),
elif x>5:
print("aaaaaa")
Так не пашет.
А если :
x = input("X=")
if x == 5:
print("asdf"),
elif x<5:
print("asddddf"),
elif x>5:
print("aaaaaa")
то появляется "х=", ввожу число, и ошибка. Как я понял нужно ввести тип данных, но когда ввожу itn("x"), не пашет. Напишите всю прогу если не трудно.
login999
30.01.2010, 20:23
Вот именно что читал, но в исходном коде не мог найти это.
Почитай на википедии учебник - он информативнее :)
login999
30.01.2010, 20:35
x = int(raw_input())
if x == 5:
print("asdf"),
elif x<5:
print("asddddf"),
elif x>5:
print("aaaaaa")
У питона динамическая строгая типизация в отличие от пхп, где динамическая слабая типизация. Поэтому сравнивать тип инт и тип стр это плохая идея...
CyberHunter
30.01.2010, 20:48
Поэтому сравнивать тип инт и тип стр это плохая идея...
Хм... В книге которую я читаю их постоянно сравнивают.
login999
30.01.2010, 20:51
Хм... В книге которую я читаю их постоянно сравнивают.
Если в этой книге использется input() то тогда это возможно, так как после eval() полученные данные из "5" превращаются в 5.
CyberHunter
30.01.2010, 20:56
login999
Скажи как сделать raw_input оператором(или как сказать?)
Знаю для этого есть def, но еще не знаю как им пользоваться.
Потому что при
x = int(raw_input())
if x == 5:
print("asdf"),
elif x<5:
print("asddddf"),
elif x>5:
print("aaaaaa")
Ошибка!
"NameError: name 'raw_input' is not defined"
login999
30.01.2010, 20:58
login999
Скажи как сделать raw_input оператором(или как сказать?)
Знаю для этого есть def, но еще не знаю как им пользоваться.
Потому что при
x = int(raw_input())
if x == 5:
print("asdf"),
elif x<5:
print("asddddf"),
elif x>5:
print("aaaaaa")
Ошибка!
"NameError: name 'raw_input' is not defined"
Оба-на :) А питон то 3 ветки :)
Тут raw_input() скрыт за input()
так что замена первой строчки на такую x = int(input()) тебя спасает...
П.С. На будущее - я сам пишу на 2.6 версии, поэтому рассматриваю в первую очередь варианты для нее. На 2.5 я не писал никогда, а с тройкой имел негативный опыт, после которого и вернулся на двойку. Поэтому просьба на будущее всем кто прочтет это сообщение - когда задаете вопрос, то пожалуйста указывайте полную версю питона, которая у вас установлена.
CyberHunter
30.01.2010, 23:30
login999
Спс! За помощь!
Скажи а почему ты:
с тройкой имел негативный опыт
???
login999
31.01.2010, 14:34
login999
Спс! За помощь!
Скажи а почему ты:
???
Были проблемы с запуском того что я напейсал. Не отрабатывало оно так как нужно, а конкретно то гуй на ттк (пиздец, мне пришлось с нуля переписывать софт с тройки на двойку да еще и впридачу раздупляться с wxpython для того чтоб сделать нормальный гуй!). Хотя, если честно, я сейчас склоняюсь к тому мнению, что это были какие-то траблы именно у заказчика на конкретно его тачке...
login999, жжёшь :) ты что не видел, что в его коде print - функция?
login999
01.02.2010, 00:41
login999, жжёшь :) ты что не видел, что в его коде print - функция?
Я так принтил на 2.6 когда пытался себя к этому приучить. Ты попробуй ^.^
P.S. Хотя ты и прав, я этот момент упустил :)
daniel_1024
03.02.2010, 20:51
никто не знает если парсить ссылки с гугла через api (ajax.googleapis.com) будет капча вылезать ? есть ли там какой-либо лимит по запросам с одного айпи или можно парсить вообще до бесконечности ?!)
gold-goblin
03.02.2010, 20:53
никто не знает если парсить ссылки с гугла через api (ajax.googleapis.com) будет капча вылезать ? есть ли там какой-либо лимит по запросам с одного айпи или можно парсить вообще до бесконечности ?!)
Как этот вопрос относится к питону? Или тебе накатать скрипт который это проверит?
login999
04.02.2010, 00:54
никто не знает если парсить ссылки с гугла через api (ajax.googleapis.com) будет капча вылезать ? есть ли там какой-либо лимит по запросам с одного айпи или можно парсить вообще до бесконечности ?!)
капча не лезет, но лимит есть. Особо там не попарсишь.
пытаюсь установить curl в питон
делаю примерно так:
Python.exe setup.py install --curl-dir=C:\curl-7.19.7\curl-7.19.7
в curl-dir распакованный свежий курл отсюда: http://curl.haxx.se/download.html
получаю:
Using curl directory: C:\curl-7.19.7\curl-7.19.7
Traceback (most recent call last):
File "setup.py", line 210, in <module>
assert os.path.isfile(o), o
AssertionError: C:\curl-7.19.7\curl-7.19.7\lib\libcurl.lib
gold-goblin
07.02.2010, 00:38
и ос какая?
Большой джо
07.02.2010, 02:17
Нужна ваша помощь!
Вообщем только начал изучать питон. На питоне хочу разрабатывать веб приложения. Создаю файл у себя на сервере test.py. Добавляю следующую строку в .htaccess: AddHandler cgi-script .py.
В файл test.py вставляю след. код:
#!/usr/bin/python
print "Content-Type: text/html"
print
print "<html>"
print "<title>python</title>"
print "<body>"
print "<h1>test</h1>"
print "blablabla!"
print "</body>"
print "</html>"
При посещении данного файла в браузере выдаёт 500 ошибку! Лезу в лог файлы, там добавлено две ошибки:
suexec policy violation: see suexec log for more details
Premature end of script headers: test.py
В чём проблема, не пойму!
Нужна ваша помощь!
Вообщем только начал изучать питон. На питоне хочу разрабатывать веб приложения. Создаю файл у себя на сервере test.py. Добавляю следующую строку в .htaccess: AddHandler cgi-script .py.
В файл test.py вставляю след. код:
#!/usr/bin/python
print "Content-Type: text/html"
print
print "<html>"
print "<title>python</title>"
print "<body>"
print "<h1>test</h1>"
print "blablabla!"
print "</body>"
print "</html>"
При посещении данного файла в браузере выдаёт 500 ошибку! Лезу в лог файлы, там добавлено две ошибки:
suexec policy violation: see suexec log for more details
Premature end of script headers: test.py
В чём проблема, не пойму!
1) сохрани скрипт в UNIX формате
2) поставь права 755
должно заработать
версия питона какая ?
и ос какая?
2.6.4
windows xp
2.6.4
windows xp
Насколько я помню под 2.6 оф версии нет,да и вообще curl не пользуется популярностью в python.
http://pycurl.sourceforge.net/download/
Большой джо
07.02.2010, 13:27
1) сохрани скрипт в UNIX формате
2) поставь права 755
должно заработать
Права 755 стоят!
В Unix формате, это как?
если курл не пользуется популярностью в питоне, то что пользуется?
для отправки http-запросов
Большой джо
в unix-формате, это отдельный тип символов перевода строк
скачай akelpad, он умеет менять тип для windows/mac/linux
"правка - формат новой строки"
Большой джо
07.02.2010, 15:18
если курл не пользуется популярностью в питоне, то что пользуется?
для отправки http-запросов
Большой джо
в unix-формате, это отдельный тип символов перевода строк
скачай akelpad, он умеет менять тип для windows/mac/linux
"правка - формат новой строки"
Во, спасибо большое, всё заработало!!!
[Dezzter]
07.02.2010, 22:37
если курл не пользуется популярностью в питоне, то что пользуется?
PyCurl ?
http://pycurl.sourceforge.net/download/
// кэп
PyCurl ?
Цитата:
Сообщение от rushter
http://pycurl.sourceforge.net/download/
// кэп
собственно, скачав и распаковав его (pycurl-7.19.0.tar.gz 09-Sep-2008 17:43 70K)
я и получаю:
http://forum.antichat.ru/showpost.php?p=1881774&postcount=581
ещё качал инсталлятор pycurl-ssl-7.18.2.win32-py2.5.exe
но он при установке выдает что не может найти установленный питон
я ставил в винде PYTHONHOME, PYTHONPATH пути к папке с питоном - бестолку
gold-goblin
07.02.2010, 23:29
Под вин курл не ставил, но слышал что это жопатно.
А использовать лучше что-то из стандартного httplib, urllib, urllib2.
login999
08.02.2010, 10:23
Насколько я помню под 2.6 оф версии нет,да и вообще curl не пользуется популярностью в python.
http://pycurl.sourceforge.net/download/
Ну, у такой категории людей как Дикс то очень даже и пользуется.
Более чем уверен, что ни о чём другом он даже не задумывался.
если курл не пользуется популярностью в питоне, то что пользуется?
для отправки http-запросов
Большой джо
в unix-формате, это отдельный тип символов перевода строк
скачай akelpad, он умеет менять тип для windows/mac/linux
"правка - формат новой строки"
Ну 100%, книжки пишут просто так. Маны это тоже для дуракофф.
http://docs.python.org/modindex.html - Настоятельно рекомендую к прочтению. Потом таких вопросов не будет.
Поддержки соксов "изкаропки" нет. Хочешь соксов без гемора - pyCURL в зубы и downgrade до Python2.5 (Под него есть сборка под Форточки). Хочешь погемориться - socksipy(Но это на уровне сокетов). Самый рульный вариант - это Twisted(если хорошо поискать, то есть модуль для поддержки соксов), но Twisted это асинхронные сокеты, следовательно Излом мозгофф обеспечен.
login999
08.02.2010, 10:25
И не найдёт , ибо py2.5.exe это значит Python2.5, а не Python2.6
CyberHunter
14.02.2010, 17:35
Скажите как это сделать:
Есть текст, нужно написать одну строку и если она есть в тексте то тру и наоборот? Как это сделать?
Читал о сравнении строк, как я понял, то нужно писать типа a = ["текст"]
b = ["строка"]
a == b
так? у меня что-то не получается :( . Интерпретатор 3.0.1.
gold-goblin
16.02.2010, 15:33
Тут появилась не понятка с циклами...
есть цикл:
i = 54
....
.... #тута код
while i < int(len(site)):
Интерпретатор ругается что к переменной i обращаются до ее объявления...
File "C:\boot.py", line 11, in boot
while i < int(len(site)):
UnboundLocalError: local variable 'i' referenced before assignment
В чем трабл?
gold-goblin
16.02.2010, 17:11
Хе проблема решена.
Заключалась в том что переменная i не была объявлена в функции где использовалась.
Fallen Dick
21.02.2010, 22:07
Имеется html код:
<li><a href="http://url/">анкор</a></li>
Нужно как бы анкор спарсить) Всегда получалось, но тут ума дать не могу, ошибки так и сыпятся :(
Ошибка в этой строке:
re_url = re.findall('\<li\>\<a href\=\".*\">(.*)\<\/a\>\<\/li\>', page_map)
Сама ошибка:
Traceback (most recent call last):
File "C:\Python26\ololo.py", line 9, in <module>
re_url = re.findall('\<li\>\<a href\=\".*\">(.*)\<\/a\>\<\/li\>', page_map)
File "C:\Python26\lib\re.py", line 177, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer
CyberHunter
21.02.2010, 22:22
Скажите можно ли прогу написанную на питоне преобразовать в ехе-файл?
Т.е. чтобы не запускать каждый раз через смд.
[Dezzter]
21.02.2010, 22:30
py2exe тебе в помощь, сам не юзал, но говорят это полнейший бред)
CyberHunter
21.02.2010, 22:35
py2exe тебе в помощь, сам не юзал, но говорят это полнейший бред)
Почему бред? Кто юзал напишите.
[Dezzter]
21.02.2010, 23:03
Я только, что пробовал.. Вообще элементарный скрипт пробовал скомпилить, с кодировкой шлак получился и второй раз этот же скрипт скомпилил, вообще запускается и окно закрывается!
Вообще поиск тебе в помощь, тему по py2exe уже много раз описывали) Я сам гуглил, инфы не мало видел.. везде по немногу =**
taxpayer
22.02.2010, 06:10
']Я только, что пробовал.. Вообще элементарный скрипт пробовал скомпилить, с кодировкой шлак получился
Может потому что у тебя руки не из того места растут?
#! -*- coding: cp866 -*-
ну или утф-8, но я сильно сомневаюсь, что у тебя никсы
']
и второй раз этот же скрипт скомпилил, вообще запускается и окно закрывается!
Потому что ты два раза щёлкнул на ярлычок консольной программы print 'Hello'?
CyberHunter, всё нормально, пи2ехе не бред, и писали его не долбоёбы. возьми мануальчик, учебничек, зачем тебе собирать здесь абсолютно не несущих информации посты?
[Dezzter], не позорился бы
CyberHunter
22.02.2010, 09:55
taxpayer у меня просто сейчас нет возможности скачать и посмотреть, в ближайшее время сам посмотрю.
Ice_VeNOm
22.02.2010, 11:51
Я вроде адаптировал функцию, но почему то выдает
Traceback (most recent call last): File "C:\Users\VeNOm\Desktop\mypy\vk\vk.py", line 125, in ant s=send_cap('*********************', 'captcha.jpeg') File "C:\Users\VeNOm\Desktop\mypy\vk\vk.py", line 55, in send_cap h.request("POST", "/in.php", body, headers) File "C:\Python31\lib\http\client.py", line 918, in request self._send_request(method, url, body, headers) File "C:\Python31\lib\http\client.py", line 956, in _send_request self.endheaders(body) File "C:\Python31\lib\http\client.py", line 914, in endheaders self._send_output(message_body) File "C:\Python31\lib\http\client.py", line 768, in _send_output self.send(msg) File "C:\Python31\lib\http\client.py", line 716, in send self.connect() File "C:\Python31\lib\http\client.py", line 698, in connect self.timeout) File "C:\Python31\lib\socket.py", line 292, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): socket.gaierror: [Errno 11004] getaddrinfo failed
Сама функция
import urllib.request
import urllib.parse
import re
import codecs
import logging
import http.client
def send_cap(key, fn):
''' Отправляем капчу на anti-capcha.com
Вход:
key - ключ на антикапче
fn - файл с капчей
Выход:
id капчи - в случае успеха
False - неудача
'''
logging.info('--- Send captcha')
data = open(fn, 'rb').read()
# разделитель для данных
boundary= '----------OmNaOmNaOmNamo'
# тело HTTP-запроса
body = '''--%s
Content-Disposition: form-data; name="method"
post
--%s
Content-Disposition: form-data; name="key"
%s
--%s
Content-Disposition: form-data; name="file"; filename="capcha.jpg"
Content-Type: image/pjpeg
%s
--%s--
''' % (boundary, boundary, key, boundary, data, boundary)
# заголовки HTTP-запроса
headers = {'Content-type' : 'multipart/form-data; boundary=%s' % boundary}
# подключение к HTTP-серверу
h = http.client.HTTPConnection('antigate.com')
# посылка запроса
h.request("POST", "/in.php", body, headers)
# получение и анализ ответа HTTP-сервера
resp = h.getresponse()
data = resp.read()
h.close()
if resp.status == 200:
cap_id= int(data.split('|')[1])
return cap_id
else:
logging.error('Captcha not send: %s %s' % (resp.status, resp.reason))
return False
[Dezzter]
22.02.2010, 13:40
Может потому что у тебя руки не из того места растут?
#! -*- coding: cp866 -*-
ну или утф-8, но я сильно сомневаюсь, что у тебя никсы
Потому что ты два раза щёлкнул на ярлычок консольной программы print 'Hello'?
CyberHunter, всё нормально, пи2ехе не бред, и писали его не долбоёбы. возьми мануальчик, учебничек, зачем тебе собирать здесь абсолютно не несущих информации посты?
[Dezzter], не позорился бы
язык в очко засунь! :D
taxpayer
22.02.2010, 15:59
']язык в очко засунь! :D
Сейчас ты показал свои недалёкость и слабоумие. Вместо того, чтобы промолчать и проанализировать своё "авторитетное" мнение, ты брызжешь слюной в монитор, потому что тебя "умыли" с твоими 23 репутации.
[Dezzter]
22.02.2010, 17:46
ахахах, если бы я брызгал слюной в монитор, то не писал бы свой пост с улыбкой на лице.. можешь вздрочнуть на мою репутацию! =** ты явно не равнодушен к этим цифрам)
кст, про пи2ехе это не моё мнение, лол бля, я сказал, что мне сказали несколько людей, более компетентные в этом вопросе, не более того =/
так, что сам умойся камшотом :D
Как на питоне реаизовать добавление контакта для смс в mail.ru.
Документация по протоколу здесь: http://agent.mail.ru/ru/developers/protocol.html
-tatarin-
25.02.2010, 15:23
нашел в инете скрипт приглашения в друзья всех членов определенной группы вконтакте, но не знаю как запустить его, помогите пжл! Вот скрипт:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Created by Nuclear Worm
#
#
# Vkontakte friends adder #
# Version 0.1.a.1
#
import os, sys, time, re, logging, sqlite3, urllib, urllib2, cookielib
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
VERSION='0.1.a.1'
COOKIEFILE = '/tmp/cookies1.lwp'
LOG_FILENAME = '/tmp/dbg.log'
logging.basicConfig(filename=LOG_FILENAME, filemode = 'w', level=logging.DEBUG,)
class PostCommand:
def __init__(self, url, req = None):
self.request = req
self.headers = ''
self.url = url
def perform(self):
cj = cookielib.LWPCookieJar()
if os.path.isfile(COOKIEFILE): cj.load(COOKIEFILE)
url_retr = urllib2.build_opener(urllib2.HTTPCookieProcessor(c j))
self.res = url_retr.open(self.url, self.request).read()
cj.save(COOKIEFILE)
logging.debug("Got to PostCommand request = %s, url = %s"%(self.request, self.url))
#self.res = urllib.urlopen(self.url, self.request).read()
logging.debug("Got result = %s"%self.res)
class GetCommand:
def __init__(self, url):
self.headers = ''
self.url = url
def perform(self):
cj = cookielib.LWPCookieJar()
if os.path.isfile(COOKIEFILE): cj.load(COOKIEFILE)
url_retr = urllib2.build_opener(urllib2.HTTPCookieProcessor(c j))
self.res = url_retr.open(self.url).read()
cj.save(COOKIEFILE)
logging.debug("Got to GetCommand url = %s"%(self.url))
#self.res = urllib.urlopen(self.url).read()
logging.debug("Got result = %s"%self.res)
class Vkontakte:
def __init__(self, mail, password):
self.mail = mail
self.password = password
def login(self):
request = 'op=a_login_attempt&email=' + self.mail + '&pass=' + self.password +'&expire=0'
req = PostCommand('http://vkontakte.ru/login.php', request)
req.perform()
my_id = re.compile('good(\d+)')
logging.debug("Reply from login:\n" + req.res)
if "failed" in req.res: return "Error! Check your login/pass!"
else:
myid = my_id.search(req.res).groups()[0]
return myid
class Group:
def __init__(self, group_id):
self.group_id = group_id
def find(self, datafile = None):
if datafile: self.datafile = datafile
else:
print "No datafile to store your friends"
sys.exit(1)
gp = GetCommand('http://vkontakte.ru/search.php?group=' + self.group_id)
gp.perform()
logging.debug("Reply from login:\n" + gp.res)
sum = re.compile('<strong>.* (\d+) .*\.</strong>')
all_those = sum.search(gp.res).groups()[0]
logging.debug("Sum of all users in group:\n" + all_those)
friends = extract_id(gp.res)
add_to_file(self.datafile, friends)
time.sleep(1)
for i in range(1, int(all_those)/10 + 1):
gp = GetCommand('http://vkontakte.ru/search.php?&group=' + self.group_id + '&o=0&st=' + str(i*10))
gp.perform()
friends = extract_id(gp.res)
add_to_file(self.datafile, friends)
time.sleep(1)
return sum
class Friend:
def __init__(self):
pass
def add(self, datafile = None, limit = None, message = None):
if datafile: self.datafile = datafile
else: pass
if limit: self.limit = limit
else: self.limit = 20000000
if message: self.message = message
else: self.message=''
df = open(self.datafile, 'r')
ind = 0
hash_find = re.compile('id="hash" value="([^"]+)"')
for line in df.readlines():
id = line.strip(' \n')
fp = PostCommand('http://vkontakte.ru/friends_ajax.php', req = 'act=request_form&fid=' + id)
fp.perform()
#print fp.res
for line1 in fp.res.split('\\n'):
if hash_find.search(line1.replace('\\', '')):
hash = hash_find.search(line1.replace('\\', '')).groups()[0]
break
try: hash
except:
print "Hash not found"
logging.debug("Hash for user %s not found!"%id)
continue
fp = PostCommand('http://vkontakte.ru/friends_ajax.php', req = 'act=accept_friend&fid=' + id + '&hash=' + hash +'&verbose=1&message=' + self.message)
fp.perform()
ind +=1
if ind >= self.limit: break
return ind
def extract_id(data):
result = ''
link = re.compile('<div class="info" id="row2(\d+)">')
for line in StringIO(data).readlines():
if link.search(line):
result += link.search(line).groups()[0] + '\n'
return result
def write_file(file, string):
file1 = open(file, 'w')
file1.write(string)
file1.close()
def add_to_file(file, data):
file1 = open(file, 'a')
file1.write(data)
file1.close()
def main(*args):
mail, password = sys.argv[1:]
#mail = "mymail@mail.ru"
#password = "mypass"
### For Windows change to your path
tmp_file = '/tmp/group_mems'
mail = mail.replace("@","%40")
mylogin = Vkontakte(mail, password).login()
#print "Your ID = ", mylogin
link = raw_input("Give link of group: ")
group_id = re.search('http://vkontakte.ru/club(\d+)', link).groups()[0]
gr = Group(group_id)
gr.find(datafile = tmp_file)
fr = Friend()
print "Added ", fr.add(datafile = tmp_file), " friends"
### Limit fo adding 30 friends, example:
#print "Added ", fr.add(datafile = '/tmp/group_mems', limit = 30), " friends"
### Add friends with message "Куку", example
#message_to_send = urllib.quote("Куку")
#print "Added ", fr.add(datafile = '/tmp/group_mems', message = message_to_send), " friends"
if __name__ == '__main__': main(sys.argv)
Или вот сылка http://code.google.com/p/socialbot/source/browse/trunk/trunk/kontakt.py
gold-goblin
26.02.2010, 19:03
Полистав скрипт видим строки
def __init__(self, mail, password):
self.mail = mail
self.password = password
что, куда я думаю понятно.
а как запустить http://www.google.ru/search?hl=ru&newwindow=1&client=firefox&hs=2ah&rls=org.mozilla:ru:official&ei=ZOKHS8-sD87csAahldSrDw&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0CBoQBSgA&q=%D0%BA%D0%B0%D0%BA+%D0%B7%D0%B0%D0%BF%D1%83%D1%8 1%D1%82%D0%B8%D1%82%D1%8C+%D1%81%D0%BA%D1%80%D0%B8 %D0%BF%D1%82+python&spell=1
но скрипт скорей всего не рабочий так как авторизация ВК менялась...
-tatarin-
26.02.2010, 20:09
Спасибо большое)))))
подскажите как сделать такой скрипт
цикл проверяет наличия в папке файла по маске(в имени файла меняется дата)
если файл существует, цикл завершается
если нет, то работает пока файл не появится
login999
28.02.2010, 14:26
подскажите как сделать такой скрипт
цикл проверяет наличия в папке файла по маске(в имени файла меняется дата)
если файл существует, цикл завершается
если нет, то работает пока файл не появится
#!/usr/bin/env python
#-*- encoding:UTF-8-*-
import os
import time
DIR = u"c:\"
while True:
for filename in os.listdir(DIR):
if u"somedata" in filename:
break
else:
time.sleep(60)
Приблизительно так
login999
28.02.2010, 14:27
Как на питоне реаизовать добавление контакта для смс в mail.ru.
Документация по протоколу здесь: http://agent.mail.ru/ru/developers/protocol.html
Очень, очень, очень нагло.
Может вам еще и модуль для работы с mrim написать ?
login999
28.02.2010, 14:31
Имеется html код:
<li><a href="http://url/">анкор</a></li>
Нужно как бы анкор спарсить) Всегда получалось, но тут ума дать не могу, ошибки так и сыпятся :(
Ошибка в этой строке:
re_url = re.findall('\<li\>\<a href\=\".*\">(.*)\<\/a\>\<\/li\>', page_map)
Сама ошибка:
Traceback (most recent call last):
File "C:\Python26\ololo.py", line 9, in <module>
re_url = re.findall('\<li\>\<a href\=\".*\">(.*)\<\/a\>\<\/li\>', page_map)
File "C:\Python26\lib\re.py", line 177, in findall
return _compile(pattern, flags).findall(string)
TypeError: expected string or buffer
page_map - проверь содержимое, там не строка или юникод-строка
login999
28.02.2010, 14:40
Я вроде адаптировал функцию, но почему то выдает
Сама функция
import urllib.request
import urllib.parse
import re
import codecs
import logging
import http.client
def send_cap(key, fn):
''' Отправляем капчу на anti-capcha.com
Вход:
key - ключ на антикапче
fn - файл с капчей
Выход:
id капчи - в случае успеха
False - неудача
'''
logging.info('--- Send captcha')
data = open(fn, 'rb').read()
# разделитель для данных
boundary= '----------OmNaOmNaOmNamo'
# тело HTTP-запроса
body = '''--%s
Content-Disposition: form-data; name="method"
post
--%s
Content-Disposition: form-data; name="key"
%s
--%s
Content-Disposition: form-data; name="file"; filename="capcha.jpg"
Content-Type: image/pjpeg
%s
--%s--
''' % (boundary, boundary, key, boundary, data, boundary)
# заголовки HTTP-запроса
headers = {'Content-type' : 'multipart/form-data; boundary=%s' % boundary}
# подключение к HTTP-серверу
h = http.client.HTTPConnection('antigate.com')
# посылка запроса
h.request("POST", "/in.php", body, headers)
# получение и анализ ответа HTTP-сервера
resp = h.getresponse()
data = resp.read()
h.close()
if resp.status == 200:
cap_id= int(data.split('|')[1])
return cap_id
else:
logging.error('Captcha not send: %s %s' % (resp.status, resp.reason))
return False
Не находит сайт антикапчи, проверь данные :)
2 login999
спасибо!
а можно как-то сделать чтобы программа собранная в ехе не выводила подобные предупреждения?
D:\Python!\PARSER\dist\library.zip\MySQLdb\__init_ _.py:34: DeprecationWarning: the sets module is deprecated
login999
28.02.2010, 22:01
2 login999
спасибо!
а можно как-то сделать чтобы программа собранная в ехе не выводила подобные предупреждения?
D:\Python!\PARSER\dist\library.zip\MySQLdb\__init_ _.py:34: DeprecationWarning: the sets module is deprecated
Такое делает только если собрана через py2exe и консольный вариант :)
Лично я - хз как убрать этот ворнинг. Могу посоветовать только поюзать PyInstaller -мб с ним такого не будет.
P.S. Хотя я и сомнительно отношусь к ксакепу как к журналу, но после гугления на тему собиралок в экзе я наткунулся именно на их статью о PyInstaller. Жирный плюс авторам, так как сегодня полтора часа пытался собрать приложение через py2exe который в упор не тянул бинарных зависимостей, а PyInstaller всё собрал с полпинка...
CyberHunter
03.03.2010, 21:24
Вот я учу питон где-то месяц(по одной книге), программный код могу прочитать, что выучил понимаю, но определенную задачу решить не могу, это нормально?
Дайте ссылки на какие-то задачники по питону, или сайты с задачами, что бы попробовать что-то написать.
login999
03.03.2010, 22:47
Вот я учу питон где-то месяц(по одной книге), программный код могу прочитать, что выучил понимаю, но определенную задачу решить не могу, это нормально?
Дайте ссылки на какие-то задачники по питону, или сайты с задачами, что бы попробовать что-то написать.
Ну вот я уже год с чем-то как пытаюсь программировать на Python, а асинхронное программирование и web так и не осилил, код прочитать могу(и не только свой!), это нормально ?
Подскажите где вьехать в сам концепт асинхронного программирования - меня интересует конкретно тот момент, как именно из бесконечного потока данных выделяется что именно тот пакет - это ответ на именно этот запрос, и почему это не превращается в кашу.
P.S. Практика - лучший задачник ИМХО. Заглянь в раздел купли-продажи, посмотри что там хотят купить и попробуй реализовать сам...
Такое делает только если собрана через py2exe и консольный вариант :)
Лично я - хз как убрать этот ворнинг. Могу посоветовать только поюзать PyInstaller -мб с ним такого не будет.
P.S. Хотя я и сомнительно отношусь к ксакепу как к журналу, но после гугления на тему собиралок в экзе я наткунулся именно на их статью о PyInstaller. Жирный плюс авторам, так как сегодня полтора часа пытался собрать приложение через py2exe который в упор не тянул бинарных зависимостей, а PyInstaller всё собрал с полпинка...
PyInstaller крутая вещь, особенно полезно почитать его исходники в плане защиты кода :)
login999
04.03.2010, 13:25
PyInstaller крутая вещь, особенно полезно почитать его исходники в плане защиты кода :)
ну защита кода для мну такая задача не стояла, а вот выкурить приложение на PyQt4 со всеми зависимостями вместе то у него получилось на 5+, не радует только то, как это реализовано - посредством хуков :(
Chubakur
04.03.2010, 17:26
Как на pygtk создать многострочное поле для ввода/вывода текста? Желательно со скроллом. Например, для инициализации однострочного поля, надо использовать:
element=gtk.Entry()
login999
04.03.2010, 18:10
Как на pygtk создать многострочное поле для ввода/вывода текста? Желательно со скроллом. Например, для инициализации однострочного поля, надо использовать:
element=gtk.Entry()
Никогда не писал на pyGTK :)
На wxpython это можно получить добавлением флага wx.TE_MULTILINE
Chubakur
04.03.2010, 18:11
Никогда не писал на pyGTK :)
На wxpython это можно получить добавлением флага wx.TE_MULTILINE
никогда не писал на wx. Если можешь ,дай ссылку на мануал, как подключать и подобное :)
login999
04.03.2010, 18:16
никогда не писал на wx. Если можешь дай ссылку на мануал, как подключать и подобное :)
wxpython.org - там есть бинарная сборка под форточки и Python 2.6 , устанавливается с полпинка (относительно 32 разрядной системы), проблем не возникало (были только со сборкой в exe, ну да там все быстро решилось). Есть мордодел (поначалу немного неудобный, но потом в принципе привыкнешь) - wxformbuilder.org (качать последнюю бету с sourcefoge, только она умеет генерить для питона код (3.66 вроде или чето такое)). Дальше только маны :)
P.S. Но "мечту секретарши" ака самый песдатый гуй то ИМХО проще всего делать на PyQt , если подразумевать "изкаропки"
Ну и Tkinter тоже никто не отменял - для маленьких гуев можно поюзать, тем более что он "изкаропки"
Ice_VeNOm
05.03.2010, 19:28
Я тут быдлокодил..... http://dumpz.org/17440/
def asd(line):
line1 = re.split('[\:]+',line)
mail = line1[0]
flag=False
pas = line1[1]
print(pas)
serv = re.split('[\@,\:]+',line)
serv=serv[1]
sh=0
print('Start activate')
while flag==False:
try:
box = poplib.POP3("pop3."+serv, "110")
box.user(mail)
box.pass_(pas)
numMessages = len(box.list()[1])
s = box.retr(len(box.list()[1]))[1]
q=0
for i in s:
v = re.search(b'http://vkontakte.ru/register.php?',i)
if v != None:
q=i
q= q.decode()
print(q)
print('We have a message')
res = urllib.request.urlopen(q)
flag = True
break
if q==0:
box.quit()
print('Waiting for message...')
time.sleep(10)
except:
print("Unexpected error:", sys.exc_info())
sh=sh+1
if sh>3:
print('Oh shi~')
flag = True
else:
time.sleep(15)
Но вот не пойму в чем проблема, при подключении к любому ящику, например майл.ру выдает ошибку. Для майл ру она сообщает о том, что пароль от аккаунта не верен, хотя с этим паролем на аккаунт можно зайти.
Подскажите пожалуйста, в чем может быть проблема.
Используется poplib и python 3.1
забыл добавить. входящая переменная line идет вида "mail@mail.com:password
login999
05.03.2010, 20:33
pas = line1[1].strip("\r\n")
Не оно ?
P.S. Некошерно юзать регулярки для разбивки строки - у нее(str) есть метод .split()
Ice_VeNOm
05.03.2010, 21:20
Теперь выдает следующее:
<class 'AttributeError'>, AttributeError("'POP3' object has no attribute 'sock'",), <traceback object at 0x02E93328>
login999
05.03.2010, 22:51
Теперь выдает следующее:
Так, а вот об этом подробнее - в приведенном участке кода нету той строки, на которую ты выдал трейсбек. Ругается на то, что ты где-то используешь атрибут sock применительно к обьекту класса POP3.
Чтоб по нормальному - то выложи код плиз. Не хочешь светить - можно в ПМ...
Ice_VeNOm
05.03.2010, 23:30
все сделал ^_^
цикл был не правильно построен
http://exnews.org/direct_download.html?full_url=http://depositfiles.com/ru/files/1265758
Как выловить ссылку под словом "Скачать" ?
Тоже самое с sfrom.net/http://depositfiles.com/ru/files/1265758
Я мог бы выловить из исходника ссылку через .split() Но ссылки в коде нет.
Подскажите как выловить.
login999
06.03.2010, 20:08
http://exnews.org/direct_download.html?full_url=http://depositfiles.com/ru/files/1265758
Как выловить ссылку под словом "Скачать" ?
Тоже самое с sfrom.net/http://depositfiles.com/ru/files/1265758
Я мог бы выловить из исходника ссылку через .split() Но ссылки в коде нет.
Подскажите как выловить.
Бла-бла-бла. Через .split()ты офигеешь ее отуда вылавливать, даже если она там будет. А если учитывать то что она генерится на js то ее там и не будет никогда. Вопрос сформулирован некорректно и к Python не имеет ни малейшего отношения - сниффер в руки и смотреть запросы.
Ну-тут дело даже не в .split а в том что я ссылку на материал по парсингу JS Сылок найти немогу Гугл молчит
login999
07.03.2010, 12:18
Ну-тут дело даже не в .split а в том что я ссылку на материал по парсингу JS Сылок найти немогу Гугл молчит
Сниффер в руки и смотреть запросы.
И причем здесь парсинг js =\
Ice_VeNOm
10.03.2010, 18:25
Тут решил ознакомиться с питоном в сайтостроении...
Хостинг с питоном
скрипт запускаю из папки cgi
#!/usr/bin/env python
import cgi
cgi.test()
код работает корректно
#!/usr/bin/env python
# -*- coding: utf8 -*-
print 'Hi'
не пашет - пишет ошибку 500
почему?
Chubakur
10.03.2010, 18:56
Пишу сейчас свой http сервер(так ради обучения). Мне нужно передавать хедер Content-type. Каким образом это замутить? Просто через send не получается. Использую ТОЛЬКО библиотеку socket.
login999
11.03.2010, 10:55
1) Под web не пишу, тут помощи не ждите.
2) 2 Ice_VeNOm - нафига cgi если есть хуева туча обвязок для писания под веб ?
3) 2 Chubakur - зачем нужен очередной уныло-говняный веб-сервер, если даже в стандартной библиотеке он уже написан до тебя ?
Шо ж бля за страсть писать велосипеды ? :(
Chubakur
11.03.2010, 16:51
3) 2 Chubakur - зачем нужен очередной уныло-говняный веб-сервер, если даже в стандартной библиотеке он уже написан до тебя ?
Шо ж бля за страсть писать велосипеды ? :(
Мне не важно , написано оно до меня, или нет. Я просто хочу понять как это делается, именно интересует передача хедеров.
login999
11.03.2010, 17:56
Мне не важно , написано оно до меня, или нет. Я просто хочу понять как это делается, именно интересует передача хедеров.
http://fragments.turtlemeat.com/pythonwebserver.php
CyberHunter
11.03.2010, 18:04
Скажите: как сделать из .py в .exe? py2exe работает для версии 2.6, а у меня 3.0.
Что посоветуете?
login999
11.03.2010, 18:13
Скажите: как сделать из .py в .exe? py2exe работает для версии 2.6, а у меня 3.0.
Что посоветуете?
лично я - хз, на тройке не сижу
CyberHunter
11.03.2010, 18:15
login999 а что есть на подобии пи2ехе? мб найду версию для тройки.
login999
11.03.2010, 18:16
cx_freeze, pyinstaller
inlanger
23.03.2010, 10:43
Кто-то работает с ctypes? Как, например, используя ctypes потушить монитор? Ну, или хоть какой-то живой пример, потому что в инете с этим туго ( Я просто под winmobile хочу писать на питоне, но там многого не хватает.
Скажите: как сделать из .py в .exe? py2exe работает для версии 2.6, а у меня 3.0.
Что посоветуете?
Юзай 2.6. Все остальные - говно!
CyberHunter
24.03.2010, 22:13
Юзай 2.6. Все остальные - говно!
Походу так и сделаю :(
Не всегда чем больше, тем лучше :)
Да и литературы маловато :(
Походу так и сделаю :(
Не всегда чем больше, тем лучше :)
Да и литературы маловато :(
больше не всегда лучше)
проведи анологию с машинами, более поздняя модель не всегда более крута. кому-то нужнее первая
login999
31.03.2010, 20:24
Кто-то работает с ctypes? Как, например, используя ctypes потушить монитор? Ну, или хоть какой-то живой пример, потому что в инете с этим туго ( Я просто под winmobile хочу писать на питоне, но там многого не хватает.
Не первый раз тебе отвечаю, что лично я - хз :)
login999
31.03.2010, 20:27
Почему? :(
Потому что то что ниже 2.6 почти все поддерживается и с помощью 2.6(опустим столь либимый пхпшниками pyCURL), а то что выше него (3.х) не поддерживается почти ничем(очень мало либ под него, так как относительно недавно начали разрабатывать третью ветку) И вообще 2.х это самый распространенный.
[London]
04.04.2010, 04:16
решил начать изучать питон..скачал версию 2.6 под винду......Хотел спросить, нельзя программировать не в DOS, может кто то даст нормальный урл на скачку...гугл отказывается помогать)
С питом вместе идет Python IDLE
Там можна выбрать File-New Window
будет текстовой файл
пишешь код
Save as
сохраняешь под test.py
потом жмешь F5
login999
04.04.2010, 23:40
Geany, Notepad++, Eclipse+PyDev, Eric, NetBeans, Komodo Edit, Wing IDE
А вообще-то, вопрос глупый
gold-goblin
05.04.2010, 00:15
Geany, Notepad++, Eclipse+PyDev, Eric, NetBeans, Komodo Edit, Wing IDE
А вообще-то, вопрос глупыйМожет он хочет гуи писать?
[London] Если так то ищи python gui
можно ли написать на питоне программу-переключатель клавиатуры (расклад писать самому)...может у кого есть такой опыт ? гугл ничего толком не ответил
можно ли написать на питоне программу-переключатель клавиатуры (расклад писать самому)...может у кого есть такой опыт ? гугл ничего толком не ответил
если под венду
то тут нужен не только питон, чтобы она дала тебе клавиши перехватывать
login999
07.04.2010, 09:16
если под венду
то тут нужен не только питон, чтобы она дала тебе клавиши перехватывать
pyHook ...
народ,а не в курсах как питон через сокс пустить?
login999
22.04.2010, 21:46
народ,а не в курсах как питон через сокс пустить?
Весьма расплывчасто конешн, но :
На уровне сокетов - socksipy
Повыше - pyCURL.
Pure Python - socksipy only
AquaKlaster
22.04.2010, 21:50
Как парсить текст в Python без использования regexp?
Например мне нужно вытащить из текста: >Best Friend</a> слово Best Friend
login999
22.04.2010, 21:59
Как парсить текст в Python без использования regexp?
Например мне нужно вытащить из текста: >Best Friend</a> слово Best Friend
Как бы малопонятно, если честно )))
Но есть pyparsing, правда она не для таких целей предназначена.
А так - то
html = ">Best Friend</a>"
print html[1:-4]
Весьма расплывчасто конешн, но :
На уровне сокетов - socksipy
Повыше - pyCURL.
Pure Python - socksipy only
я в кодинге 0.Скрипт под заказ делали давно корешу.Возможно пустить через проги,наподобии проксикапа?
login999
24.04.2010, 09:20
я в кодинге 0.Скрипт под заказ делали давно корешу.Возможно пустить через проги,наподобии проксикапа?
По идее - да, но я таким не занимался.
Попробуй - отпишешь результат.
ладно,это потом.Поможите еще с pyCurl, как его прикрутить к activepython? Уже изниможился,никак не выходит.
да,стоит у меня последня версия активпитон(2,6 версия питона вродь)
taxpayer
25.04.2010, 17:48
nonamez, пикурл - это не некое соксовое окно типа сокскэп или соксчейн, это библиотека, работающая до 2.5. Связать предполагаемый httplib2 с пикурлом не получится, софт нужно переписывать под эту библиотеку. Если же у тебя запросы идут на низком уровне, то можно обойтись добавлением одной функции запроса к соксу
это нечем не свяаный вопрос с прокси. просто отдельный вопрос
taxpayer
25.04.2010, 18:30
http://pycurl.sourceforge.net/download/pycurl-ssl-7.18.2.win32-py2.5.exe
import pycurl
Обрати внимание py2.5
в том и трабла,до формата пц(вчера) мне дали ссылку для скачки питона с актистайт и какую-то ссылку.Тоесть пахало на 2,6.Ладно,попробую на 2,5,просто есть возможность-что не будит пахать скрипт на 2,5
Магия?
Так работает:
import thread, time
def some_function(text, some):
print "Text: "+text
thread.start_new_thread(some_function, ("qwe", ""))
time.sleep(3);
А так нет:
import thread, time
def some_function(text):
print "Text: "+text
thread.start_new_thread(some_function, ("qwe"))
time.sleep(3);
что не так?
taxpayer
25.04.2010, 23:32
print type(('a')), type(('a', 'b'))
import thread, time
def some_function(text): print "Text: ", text
thread.start_new_thread(some_function, ('qwe',))
time.sleep(3)
Магия?
Так работает:
А так нет:
что не так?
Точно кортеж а не строка в качестве параметра переждается, надо без скобок писать
login999
26.04.2010, 09:22
Магия?
Обьявление tuple(в принципе я на всякий случай это делаю во всех последовательностях кроме dict) с размером в одно значение должно заканчиваться запятой, это кстати в туториале есть.
login999
26.04.2010, 09:30
в том и трабла,до формата пц(вчера) мне дали ссылку для скачки питона с актистайт и какую-то ссылку.Тоесть пахало на 2,6.Ладно,попробую на 2,5,просто есть возможность-что не будит пахать скрипт на 2,5
На ActiveState они свою сборку релизят немного позже основной ветки, и это если чессн не всегда радует, ибо иногда правят такие баги, которые кумарят чуть ли не по полгода. Возможность того что он не будет пахать крайне мала. А вот на активстейт (http://www.activestate.com/activepython/downloads/) есть ссылка на даунлоад и версии 2.5 (в самом низу).
подскажите какую-нибудь библиотеку для шифрования или секьюрное key-value хранилище
А я себе сегодня питон 3.1.2 скачал там можно русские имена переменным, функциям, классам давать, а то уже заебло названия придумывать на english...
login999
27.04.2010, 13:45
подскажите какую-нибудь библиотеку для шифрования или секьюрное key-value хранилище
Так чтоб по красивому то Ж полная :(.
Сам вот озадачился шифрованием.
Pure Python есть только AES(непонятно как реализовано вообще, походу кто-то херней страдал), также есть pyDes(triple DES есть).
Не PurePython :
Есть PyCrypto(где-то отрыл инсталлер под вынь, но инсталлер походу кривой, ибо не завелось, компилить скорее всего будут ебли без MinGW(не прет)), ncrypt(под вынь нормально завелся), еще есть KeyCzar (чето от лукавого(от гугла тобишь)), походу есть еще чего-то, но заебался уже после всего этого.
Еще к SQLAlchemy есть приблуда по имени Elixir, когда копошился в сорцах то натыкался на (я так понял) прозрачное шифрование инфы в БД (не помню точно где включается и что хочет для работы, но шифрует вроде AES). Короче из реально переносимого между платформами и вменяемого я так понял есть только pyDes, для моих целей его в принципе хватит, а ты для себя решай )))
П.С. Морду для твоего твиттер-клиента можно нарисовать и на WxPython, но будет не так карасиво как на КоТэ, а так то выбор мордо-фреймворков не особо шикарен - Wxpython и Qt, также есть Tkinter и pyFLTK, но мну их вообще сразу отмел из-за ... бла-бла-бла.
кто знает что означает эта ошибка на мобильном питоне 9.1 symbian и ее решение:
Traceback (most recent call last):
File "C:\private\f0eeaa0f\default.py", line 16, in ?
import mobiserf
File "c:\resource\site.py", line 97, in platsec_import
return _original_import(name, globals, locals, fromlist)
File "E:\\\System\Apps\MOBISERF\MOBISERF.py", line 55001, in ?
File "c:\resource\site.py", line 97, in platsec_import
return _original_import(name, globals, locals, fromlist)
SymbianError: [Errno -1] KErrNotFound
кто знает что означает эта ошибка на мобильном питоне 9.1 symbian и ее решение:
Traceback (most recent call last):
File "C:\private\f0eeaa0f\default.py", line 16, in ?
import mobiserf
File "c:\resource\site.py", line 97, in platsec_import
return _original_import(name, globals, locals, fromlist)
File "E:\\\System\Apps\MOBISERF\MOBISERF.py", line 55001, in ?
File "c:\resource\site.py", line 97, in platsec_import
return _original_import(name, globals, locals, fromlist)
SymbianError: [Errno -1] KErrNotFound
У автора спроси.
Ice_VeNOm
02.05.2010, 21:18
Многопоточность python 3.1
что почитать посоветуете?
taxpayer
02.05.2010, 22:14
Многопоточность python 3.1
что почитать посоветуете?
документацию (http://docs.python.org/py3k/library/threading.html)
Как отправить письмо в utf-8 (Python 3.1)
import smtplib
from email.mime.text import MIMEText
хост = "smtp.mail.ru"
пользователь = "mishustin.sergei"
пароль = "*** вам а не пароль"
от_кого = "mishustin.sergei@mail.ru"
адресаты = ["komprenda@gmail.com"]
заголовок = "Тест"
текст_сообщения = "Проверка"
соо = MIMEText(текст_сообщения, 'plain', 'utf-8')
соо['From'] = от_кого
соо['To'] = адресаты[0]
соо['Subject'] = заголовок
обьект = smtplib.SMTP(хост, 2525)
обьект.login(пользователь, пароль)
обьект.sendmail(от_кого, кому, соо.as_string())
обьект.quit()
Приводит к ошибке:
Traceback (most recent call last):
File "D:\Program Files\Python31\lib\email\message.py", line 269, in set_charset
cte(self)
TypeError: 'str' object is not callable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Program Files\Python27\mail.ru\src\mail.py", line 10, in <module>
соо = MIMEText(текст_сообщения, 'plain', 'utf-8')
File "D:\Program Files\Python31\lib\email\mime\text.py", line 30, in __init__
self.set_payload(_text, _charset)
File "D:\Program Files\Python31\lib\email\message.py", line 234, in set_payload
self.set_charset(charset)
File "D:\Program Files\Python31\lib\email\message.py", line 271, in set_charset
self._payload = charset.body_encode(self._payload)
File "D:\Program Files\Python31\lib\email\charset.py", line 380, in body_encode
return email.base64mime.body_encode(string)
File "D:\Program Files\Python31\lib\email\base64mime.py", line 94, in body_encode
enc = b2a_base64(s[i:i + max_unencoded]).decode("ascii")
TypeError: must be bytes or buffer, not str
login999
04.05.2010, 11:13
Как отправить письмо в utf-8 (Python 3.1)
import smtplib
from email.mime.text import MIMEText
хост = "smtp.mail.ru"
пользователь = "mishustin.sergei"
пароль = "*** вам а не пароль"
от_кого = "mishustin.sergei@mail.ru"
адресаты = ["komprenda@gmail.com"]
заголовок = "Тест"
текст_сообщения = "Проверка"
соо = MIMEText(текст_сообщения, 'plain', 'utf-8')
соо['From'] = от_кого
соо['To'] = адресаты[0]
соо['Subject'] = заголовок
обьект = smtplib.SMTP(хост, 2525)
обьект.login(пользователь, пароль)
обьект.sendmail(от_кого, кому, соо.as_string())
обьект.quit()
Приводит к ошибке:
Traceback (most recent call last):
File "D:\Program Files\Python31\lib\email\message.py", line 269, in set_charset
cte(self)
TypeError: 'str' object is not callable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Program Files\Python27\mail.ru\src\mail.py", line 10, in <module>
соо = MIMEText(текст_сообщения, 'plain', 'utf-8')
File "D:\Program Files\Python31\lib\email\mime\text.py", line 30, in __init__
self.set_payload(_text, _charset)
File "D:\Program Files\Python31\lib\email\message.py", line 234, in set_payload
self.set_charset(charset)
File "D:\Program Files\Python31\lib\email\message.py", line 271, in set_charset
self._payload = charset.body_encode(self._payload)
File "D:\Program Files\Python31\lib\email\charset.py", line 380, in body_encode
return email.base64mime.body_encode(string)
File "D:\Program Files\Python31\lib\email\base64mime.py", line 94, in body_encode
enc = b2a_base64(s[i:i + max_unencoded]).decode("ascii")
TypeError: must be bytes or buffer, not str
Попробуй так :
текст_сообщения = "Проверка".encode("UTF-8")
В 3.1 ИМХО только неразберихи добавлось с этим bytes типом данных. Фактически он обозначает собой str из 2.6 в определенной кодировке. То же что обьявлялось в 2.6 как string = u"Вася" в 3.1 обьявляется как строка = "Вася", т.е. то что ты воспринимаешь как str из 2.6 в 3.1 фактически является unicode из 2.6. По крайней мере я это так понял.
Попробуй так :
текст_сообщения = "Проверка".encode("UTF-8")
В 3.1 ИМХО только неразберихи добавлось с этим bytes типом данных. Фактически он обозначает собой str из 2.6 в определенной кодировке. То же что обьявлялось в 2.6 как string = u"Вася" в 3.1 обьявляется как строка = "Вася", т.е. то что ты воспринимаешь как str из 2.6 в 3.1 фактически является unicode из 2.6. По крайней мере я это так понял.
да не работает это,, с утф-8 по ходу вообще не работает, сделал всё по старинке на python 2.7a
#-*- coding: utf-8 -*-
import smtplib
server = "smtp.mail.ru"
user = "mishustin.sergei"
password = "*****"
FROM = "mishustin.sergei@mail.ru"
TO = "komprenda@gmail.com"
subject = u"Тест".encode("windows-1251")
text = u"Проверка".encode("windows-1251")
msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s" %(FROM, TO, subject, text)
print(msg)
s = smtplib.SMTP(server, 2525)
s.login(user, password)
s.sendmail(FROM, TO, msg)
s.quit()
Какой интервал должен быть для рассылки слышал что у маила раз в 1 минуту, и не более n писем, чему это n равно?
login999
04.05.2010, 12:11
да не работает это,, с утф-8 по ходу вообще не работает, сделал всё по старинке на python 2.7a
#-*- coding: utf-8 -*-
import smtplib
server = "smtp.mail.ru"
user = "mishustin.sergei"
password = "*****"
FROM = "mishustin.sergei@mail.ru"
TO = "komprenda@gmail.com"
subject = u"Тест".encode("windows-1251")
text = u"Проверка".encode("windows-1251")
msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n%s" %(FROM, TO, subject, text)
print(msg)
s = smtplib.SMTP(server, 2525)
s.login(user, password)
s.sendmail(FROM, TO, msg)
s.quit()
Какой интервал должен быть для рассылки слышал что у маила раз в 1 минуту, и не более n писем, чему это n равно?
Об этом n не знаю, а вот smtp у них подтупливает, это да.
Об этом n не знаю, а вот smtp у них подтупливает, это да.
А как всё-таки правильно на 3 питоне код записать
login999
04.05.2010, 12:33
А как всё-таки правильно на 3 питоне код записать
Вечером отпишу. Щас нету возможности проверить.
гДПЮЯРБСИРЕ, ЛНЪ ЯРСДХЪ ГЮМХЛЮЕРЯЪ ЯНГДЮМХЕЛ ЯЮИРНБ(ЯЮИРНБ БХГХРНЙ, ОЕПЯНМЮКЭМШУ ЯЮИРНБ, ХМРЕПМЕР ЛЮЦЮГХМНБ), БЕА-ДХГЮИМНЛ, ОПНБНДХЛ ПЕЙКЮЛМШЕ ЮЙЖХХ Б ХМРЕПМЕР, ЙКХЕМРЮЛ ОПЕДНЯРЮБКЪЕЛ УНЯРХМЦ, ПЮАНРЮ Я МЮЛХ ГЮКНЦ БЮЬЕЦН АСДСЫЕЦН СЯОЕУЮ. оПХЕЛКХЛШЕ ЖЕМШ. дНО. email: komprenda@gmail.com. рЕК. 8-904-XXX-XX-XX (10.00 - 21.00 ЕФЕДМЕБМН). я СБЮФЕМХЕЛ, яЕПЦЕИ лХЬСЯРХМ.
Блять людям какой-то бред типо этого приходит(на почтовые ящики на маиле). Что делать?
login999
04.05.2010, 16:20
гДПЮЯРБСИРЕ, ЛНЪ ЯРСДХЪ ГЮМХЛЮЕРЯЪ ЯНГДЮМХЕЛ ЯЮИРНБ(ЯЮИРНБ БХГХРНЙ, ОЕПЯНМЮКЭМШУ ЯЮИРНБ, ХМРЕПМЕР ЛЮЦЮГХМНБ), БЕА-ДХГЮИМНЛ, ОПНБНДХЛ ПЕЙКЮЛМШЕ ЮЙЖХХ Б ХМРЕПМЕР, ЙКХЕМРЮЛ ОПЕДНЯРЮБКЪЕЛ УНЯРХМЦ, ПЮАНРЮ Я МЮЛХ ГЮКНЦ БЮЬЕЦН АСДСЫЕЦН СЯОЕУЮ. оПХЕЛКХЛШЕ ЖЕМШ. дНО. email: komprenda@gmail.com. рЕК. 8-904-XXX-XX-XX (10.00 - 21.00 ЕФЕДМЕБМН). я СБЮФЕМХЕЛ, яЕПЦЕИ лХЬСЯРХМ.
Блять людям какой-то бред типо этого приходит(на почтовые ящики на маиле). Что делать?
http://python.su/forum/viewtopic.php?pid=24145
login999
04.05.2010, 20:26
Всё оказалось еще проще )
#!/usr/bin/python
#-*-encoding:UTF-8-*-
import smtplib
import email
from email.mime.text import MIMEText
хост = "smtp.mail.ru"
пользователь = "чей-то логин"
пароль = "чей-то пароль"
от_кого = "чьё-то мыло"
адресаты = ["кому-то там"]
заголовок = "Тест"
текст_сообщения = "Проверка".encode("utf-8")
соо = MIMEText(текст_сообщения, 'plain', 'utf-8')
обьект = smtplib.SMTP(хост, 2525)
обьект.login(пользователь, пароль)
mess = соо.as_string()
обьект.sendmail(от_кого, адресаты, mess)
обьект.quit()
Ice_VeNOm
13.05.2010, 19:12
opener = urllib.request.build_opener(urllib.request.HTTPCoo kieProcessor(cj))
opener.addheaders = ....
нужно передать 11 заголовков. После передачи 5ти
[('User-agent','Opera/9.80'),('Accept-Language',' ru-RU,ru;q=0.9,en;q=0.8'),('Accept-Charset',' iso-8859-1, utf-8, utf-16, *;q=0.1'),('Accept-Encoding',' deflate, gzip, x-gzip, identity, *;q=0'),('Cookie2',' $Version=1'),('Connection',' Keep-Alive, TE'),]
питон пишет
File "C:\Python31\lib\urllib\request.py", line 1029, in do_request_
for name, value in self.parent.addheaders:
ValueError: too many values to unpack
python 3.1
login999
14.05.2010, 20:01
Попробуй приблизительно так - Питон 3.1. не стоит чтобы проверить
opener = urllib.request.build_opener(urllib.request.HTTPCoo kieProcessor(cj))
headers = {"User-agent":"Opera/9.80", "Accept-Language":" ru-RU,ru;q=0.9,en;q=0.8"}
req = urllib.request.Request("http://www.google.com", headers=headers)
print opener.open(req)
boris_blade
23.05.2010, 15:36
Всем привет.
есть такой вопрос.
У меня есть некий класс, который передает веб-серверу два параметра.
ml = Mail('mail', 'site.com')
Так вот вопрос как передавать классу список
вида имя@домен?
login999
24.05.2010, 09:18
Всем привет.
есть такой вопрос.
У меня есть некий класс, который передает веб-серверу два параметра.
ml = Mail('mail', 'site.com')
Так вот вопрос как передавать классу список
вида имя@домен?
ml = Mail(["mail@domain", "mail2@domain"])
М ?
boris_blade
24.05.2010, 23:38
нет так не пойдет.
Емейлов может быть тысяча.
нужно передавать классу их именно из файла
boris_blade, не совсем понятно, ты хочешь из файла взять список адресов?
mails = []
def readlist():
file = open('mails.txt','r')
for line in file:
line = line.replace("\n","")
line = line.replace("\r","")
mails.append(line)
eadlist()
я это решал так.
login999
25.05.2010, 09:10
Так вот вопрос как передавать классу список
вида имя@домен?
...
нет так не пойдет.
В моем примере в класс передавался именно список.
Пожалуйста, на будущее будьте добры задавать вопросы своими словами, если путаетесь в терминологии.
По сути - в вашем случае в класс можно передавать хэндлер на файл, или создавать динамическую очередь.
В первом случае это будет выглядеть как
ml = Mail(open("mails.txt"))
Только обратите внимание, что не нужно вызывать метод readlines(). Второй вариант сложнее в реализации, это-передавать в класс обьект типа Queue, который будет автоматически наполняться отдельным потоком до определенного значения (создать что-то типа буфера). Из собственного опыта могу сказать что второй вариант будет быстрее, но остановить его сложнее, если вас интересует управление очередью.
P.S. Тысяча имейлов это так, чисто поорать. Задумываться об этом стоит в том случае, если у вас счет идет на миллионы/планируется запускать в таких условиях, что кол-во памяти ограничено.
login999
25.05.2010, 09:11
boris_blade, не совсем понятно, ты хочешь из файла взять список адресов?
mails = []
def readlist():
file = open('mails.txt','r')
for line in file:
line = line.replace("\n","")
line = line.replace("\r","")
mails.append(line)
eadlist()
я это решал так.
mails = [line.strip() for line in open("mails.txt")]
boris_blade
26.05.2010, 00:04
login999
Благодарствую.
Утром попробую сделать так.
Никак не получается запустить парсер (после запуска выкидывает из консоли), в скрипте реализован GUI. Может быть для него нужно качать отдельно какие то библиотеки? Интерпретатор 2 ветки (2.6).
С питоном сталкиваюсь впервые, так что сильно не ругать, если вопрос глупый.
Исходник: http://dumpz.org/9729/
login999
26.05.2010, 19:12
Никак не получается запустить парсер (после запуска выкидывает из консоли), в скрипте реализован GUI. Может быть для него нужно качать отдельно какие то библиотеки? Интерпретатор 2 ветки (2.6).
С питоном сталкиваюсь впервые, так что сильно не ругать, если вопрос глупый.
Исходник: http://dumpz.org/9729/
О_о оно кому-то нужно еще :D
Во второй строчке замени utf-8 на cp1251.
О_о оно кому-то нужно еще :D
Во второй строчке замени utf-8 на cp1251.
Спасибо, теперь работает ) Странно, что не обратил внимание на кодировку. В связи с закрытием поиска на slil.ru, очень актуально )
boris_blade
05.06.2010, 23:04
ml = Mail([line.strip() for line in open("mail.txt")])
Пробую так.
Но оно ругается на количество аргументов
TypeError: __init__() takes exactly 3 arguments (2 given)
boris_blade
06.06.2010, 12:47
Собственно разобрался сам.
Решил с помощью цикла.
О_о оно кому-то нужно еще :D
........................
Ты что
Класс login999 спасибо для новичка это просто находка !!!
Всё подробненько супер !
login999
10.06.2010, 17:16
делть
Сделал ^.^
login999
10.06.2010, 17:20
Ты что
Класс login999 спасибо для новичка это просто находка !!!
Всё подробненько супер !
Да я как код увидел то щас вообще теряюсь, как оно работало О_о.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot