Для подключения услуги(турбокнопка) на сайте моего ISP написал коротенький скрипт.
Может быть пригодится кому-нибудь, достаточно удобно, если нужно что-нибудь быстро скачать.
Также может быть полезен как пример автоматизации действий на сайте.
Скрипт умеет подключать услугу либо за счет списания денежных средств, либо за счет бонусных баллов.
python turbo.py money 1 — подключит турбокнопку, за счет денежных средств на счете, на один час.
Тестировалось на python 2.7
Для просмотра http заголовков использовал расширение(у меня firefox) livehttpheaders, для просмотра данных переключателей и кнопок(чтобы составить POST-запрос) использовал firebug.
Код не блещет красотой, но выполняет свою функцию.
Может быть пригодится кому-нибудь, достаточно удобно, если нужно что-нибудь быстро скачать.
Также может быть полезен как пример автоматизации действий на сайте.
Скрипт умеет подключать услугу либо за счет списания денежных средств, либо за счет бонусных баллов.
python turbo.py money 1 — подключит турбокнопку, за счет денежных средств на счете, на один час.
Тестировалось на python 2.7
Для просмотра http заголовков использовал расширение(у меня firefox) livehttpheaders, для просмотра данных переключателей и кнопок(чтобы составить POST-запрос) использовал firebug.
Код не блещет красотой, но выполняет свою функцию.
import sys import urllib2 import urllib import cookielib #====================================================== username = "username" password = "password" #====================================================== login_url = "https://my.onlime.ru/session/login" bonus_url = "https://my.onlime.ru/bonus" money_url = "https://my.onlime.ru/turbo" bonus_active_url = "https://my.onlime.ru/bonus/activate" money_acive_url= "https://my.onlime.ru/turbo/request" headers = {'User-agent' : 'Mozilla/5.0 (Windows NT 6.1) Gecko/20100101 Firefox/15.0.1'} post_login = urllib.urlencode({ 'login_credentials[login]':username, 'login_credentials[password]':password, }) post_money_1 = urllib.urlencode({ 'turbo_id':'134', }) post_money_3 = urllib.urlencode({ 'turbo_id':'135', }) post_money_6 = urllib.urlencode({ 'turbo_id':'136', }) post_bonus_1 = urllib.urlencode({ 'ids':'LOY_TURBO1', }) post_bonus_3 = urllib.urlencode({ 'ids':'LOY_TURBO3', }) post_bonus_6 = urllib.urlencode({ 'ids':'LOY_TURBO6', }) if len(sys.argv) != 3: print "Usage: turbo.py bonus|money 1|3|6" sys.exit(1) if (sys.argv[1] != "bonus") and (sys.argv[1] != "money"): print "Usage: turbo.py bonus|money 1|3|6" sys.exit(1) if (sys.argv[2] != "1") and (sys.argv[2] != "3") and (sys.argv[2] != "6"): print "Usage: turbo.py bonus|money 1|3|6" sys.exit(1) cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj), urllib2.HTTPHandler()) opener.open(urllib2.Request(login_url, post_login, headers)) if sys.argv[1] == "bonus": opener.open(urllib2.Request(bonus_url, post_login, headers)) if sys.argv[2] == "1": opener.open(urllib2.Request(bonus_active_url, post_bonus_1, headers)) elif sys.argv[2] == "3": opener.open(urllib2.Request(bonus_active_url, post_bonus_3, headers)) elif sys.argv[2] == "6": opener.open(urllib2.Request(bonus_active_url, post_bonus_6, headers)) else: opener.open(urllib2.Request(money_url, post_login, headers)) if sys.argv[2] == "1": opener.open(urllib2.Request(money_acive_url, post_money_1, headers)) elif sys.argv[2] == "3": opener.open(urllib2.Request(money_acive_url, post_money_3, headers)) elif sys.argv[2] == "6": opener.open(urllib2.Request(money_acive_url, post_money_6, headers))
ссылка на оригинал статьи http://habrahabr.ru/post/153927/
Добавить комментарий