Форум сайта python.su
Всем доброго времени суток!
Решил начать изучение 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)
Офлайн
duckkon
На данный момент намертво упёрся в капчу: картинка, которую скрипт скачивает, не принимается сайтом.
duckkon
Подозреваю, что нет особого смысла открывать саму страницу. Сразу загрузим капчу
duckkon
Пока смотрим скачанный png вручную, потом прикручу графику на Tk
duckkonimport urllib import urllib2 import cookielib
Офлайн