Автоматизация действий на сайте (python)

от автора

Для подключения услуги(турбокнопка) на сайте моего ISP написал коротенький скрипт.
Может быть пригодится кому-нибудь, достаточно удобно, если нужно что-нибудь быстро скачать.
Также может быть полезен как пример автоматизации действий на сайте.

Скрипт умеет подключать услугу либо за счет списания денежных средств, либо за счет бонусных баллов.
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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *