Решил начать изучение Python с решения практических задач, но застрял в дебрях HTTP
Я пытаюсь написать скрипт, который будет лезть на страницу http://fmsmo.ru/internet-priemnaya/checking_docs и проверять на ней статус готовности загранпаспорта. На данный момент намертво упёрся в капчу: картинка, которую скрипт скачивает, не принимается сайтом. Ума не приложу, что я делаю не так. Вот код:
# coding=utf-8 import urllib import urllib2 import cookielib import sys cookieJar = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar)) urllib2.install_opener(opener) #Подозреваю, что нет особого смысла открывать саму страницу. Сразу загрузим капчу #page = urllib2.urlopen('http://fmsmo.ru/internet-priemnaya/checking_docs') try: captcha = urllib2.urlopen('http://fmsmo.ru/captcha') except: print("Connection error") sys.exit() with open('captcha.png', mode='wb') as local_file: local_file.write(captcha.read()) # Пока смотрим скачанный png вручную, потом прикручу графику на Tk captcha_value = raw_input("Please enter captcha: ") data = { 'num': '175000003', 'type': '1', 'captcha': captcha_value } data = urllib.urlencode(data) print(data) headers = { 'Host': 'fmsmo.ru', 'Connection': 'keep-alive', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0', 'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Referer': 'http://fmsmo.ru/internet-priemnaya/checking_docs', 'Accept-Language': 'en-US,en;q=0.5', 'Cookie': cookieJar._cookies['fmsmo.ru']['/']['PHPSESSID'].value #Читаем идентификатор сессии из Cookie } print(headers) # Отправляем POST-запрос, содержащий значение капчи и идентификатор сессии post = urllib2.Request("http://fmsmo.ru/checking_docshandler", data, headers) response = urllib2.urlopen(post) the_page = response.read() #Пока паспорт не готов, ответ должен быть "-1" - "Не найдено". Но приходит "-2" - неправильная капча print(the_page)
Буду очень благодарен за любую помощь!