Найти - Пользователи
Полная версия: Вопрос
Начало » Python для новичков » Вопрос
1
ingudur
Прошу меня сразу извинить за возможно очень глупый вопрос. Я не могу себя назвать даже начинающим программистом Питона, т.к. работаю с такой штукой как Sikuli, пишу в ней простенькие скрипты-программки, используя в основном базовый, самый поверхностный синтаксис Питона.
Но сегодня понадобилось мне прикрутить один небольшой питоновский код для работы с капчами. Код сам по себе отдельно отлично работает, и мне нужно его результат получить в string. Но вот здесь возник затык, который самому разрулить ну никак не получается.

Итак, есть функция, get_cap_text (даю кусок кода, связанного с этой функцией):
def get_cap_text(key, cap_id):
	''' Waiting and getting captcha text '''
	logging.info('--- Get captcha text')
	time.sleep(5)
	
	res_url= 'http://antigate.com/res.php'
	res_url+= "?" + urllib.urlencode({'key': key, 'action': 'get', 'id': cap_id})
	while 1:
		res= urllib.urlopen(res_url).read()
		if res == 'CAPCHA_NOT_READY':
			time.sleep(1)
			continue
		break
	
	res= res.split('|')
	if len(res) == 2:
		return tuple(res)
	else:
		return ('ERROR', res[0])

Также в коде есть ключевой момент с результатом:
# getting result
status, text = get_cap_text(key, cap_id)
print text

Так вот “print text” выдаёт на экран буквенное словосочетание (текст капчи), но добиться чего-либо другого, кроме print, от параметра text (сохранить это буквенное словосочетание в файл, например) не получается. Просто не могу понять в каком он формате.
По логике я думал его переводить из этого неизвестного формата в string: a = str(text), но вместо того самого буквенного словосочетания, которое выводит команда print, мне возвращается вот такая белеберда: <bound method Screen.text of Screen(0) E:Y, T:3,0

Подскажите, пожалуйта, что нужно сделать с параметром text или get_cap_text, чтобы получить из него текст?
Еще раз извиняюсь за глупый вопрос - самому разобраться, к сожалению, не получается.
Заранее благодарю за совет.
FishHook
очевидно, что text - это не значение, а функция.
попробуй так
a = text()
ingudur
Не помогло
a = text()
print a
- вместо того одного текстового слова выдает очень много всего:
L15;]
 0m_anti_czp.py -C\0m_anti_?2 p.py 
Fle Edt Format Rm Options 
Whdows Heb 
;| 
def send cap (key, fn) : 
" ' sending captcha 
IN: 
account key 
key 
fn 
file name 
OUT : 
captcha id 
False 
in case of success 
in case of failure 
logging.info 
Send captcha' 
read() 
' rb 
data = open(fn, 
# data boundary 
boundar y= 
OmNaOmNaOmNamo ' 
# building POST request 
body 
%s 
form-data: name=?method 
Content-Disposition: 
DOSE 
%s 
form-data; name="key 
Content-Disposition: 
%s 
%s 
form-data: name=?file" 
filename="image .jpg 
Content-Disposition: 
Content-Type: 
image/pjpeq 
%s 
%s 
% (boundary 
boundary 
k?Y 
boundary, data, 
boundary) 
' mu ltipart/form-data; boundary=%s' 
' Content-type 
headers = 
# connecting 
% boundary} 
http1ib . HTTPConnection('antigace.com' 
# sending request 
h.request 
# receiving answer and analyzing it 
{ESD 
data = resp .read() 
h.close () 
i f resp .status 
body, headers) 
POST", ?'/irhphp 
h.getresponse () 
== 200 : 
= int (data. split 
cap id 
return cap id 
) [1]) 
else: 
% (resp .status, resp . reason)) 
10qqi?q.err0r ('Captcha not send: %s %s' 
return False 
if 
-= ? main ?: 
HEHE 
main() 
C :/images/captcha.txt ', 'w' 
ODEH 
>>f, text 
DI'11'\E 
Y 
.n: 69 ~CoI:0 
9:37 
az g|gl_l~;I;l@IQI@HgIlT 3| 
? II_ 
VI'} 
rf llycx 
I3 
KI 
EN 
S 
7 
14.11.2012
py.user.next
ingudur
Так вот “print text” выдаёт на экран буквенное словосочетание (текст капчи), но добиться чего-либо другого, кроме print, от параметра text (сохранить это буквенное словосочетание в файл, например) не получается. Просто не могу понять в каком он формате.
если всё прошло успешно, то там просто текст, который сохраняется с помощью print и >>
иначе первый элемент возвращаемого кортежа - строка 'ERROR' (второй элемент - тоже строка)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB