| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > python + js |
| Автор: nikaan 13.4.2010, 15:38 |
| Я решил на досуге поиграться с питоном - и для этого написать себе утилиту, которая нужна. подробнее - есть сайт http://classic-online.ru/account/playlist/ (и много подобных) хочется уметь прослушивать треки В СЛУЧАЙНОМ порядке, а не подряд. Насколько я понимаю, вопрос в том, как запустить соответствующий script со странички. (получив, предварительно, список их всех со странички и распознав, какие из них проигрыватели...) Пока из достижения - мой скрипт на питоне смог залогиниться на этом сайте и получить html-код странички Теперь, собственно, вопль о помощи : я про web не знаю ничего. Ни как работают сервера, ни html (хотя и накарябал себе сайт - копируя кусочки кода с понравившихся страничек), ни js, ни что такое аякс, ни вообще ничего - поскольку по образованию я не программист. + я ограничен по времени (я не могу взять все стандартные учебники по вышеперечисленному и прочитать. Разве что по ночам.) Поэтому просьба - если Вы представляете себе, как сделать то, что я хочу (предварительно посмотрев на код странички http://classic-online.ru/account/playlist/ или http://www.styrov.ru/media.html?PHPSESSID=3cfdadbb66474368b39b8b0451d7e01b Можно ссылки на книги - но с указанием глав(опять же, проблема времени)) Всё это в предположении, что я не знаю ничего :( спасибо. |
| Автор: nikaan 14.4.2010, 10:30 |
| хорошо, вопрос такой : как на питоне по страничке узнать список контролов, которые там есть, информацию о них. И как их запустить потом. как обычно проигрывается музыка, при нажатии на кнопочку? (данные кусочками передаются моему flash-плейеру? или что?) ps.я в процессе изучения python. Знаю java, писал на C#, VB. Но о web я ничего не знаю, да. |
| Автор: pythonwin 14.4.2010, 10:35 |
каких контролов? что Вы имееет под словом "контролы" nikaan, расскажите лучше о самой цели всех этих действий - зачем это Вам. |
| Автор: nikaan 14.4.2010, 13:09 |
| Список контролов - ну, список кнопочек, которые можно нажимать на страничке. я писал : "подробнее - есть сайт http://classic-online.ru/account/playlist/ (и много подобных) хочется уметь прослушивать треки В СЛУЧАЙНОМ порядке, а не подряд." т.е. там есть кнопочки типа play/pause/stop - их я и назваю контролами. Кликаешь по кнопочке, музыка играет, ура. Когда трэк заканчивается, начинает играться следующий трэк. И нет никакого способа это изменить - если я хочу слушать музыку в фоновом режиме, то можно слушать только подряд. Это неудобно. Соответственно, я на каком-нибудь скриптовом языке хотел написать утилитку, которая будет проигрывать случайные трэки со странички. --- пока я умею только логиниться import os, sys, time, re, logging, sqlite3, urllib, urllib2, cookielib try: from cStringIO import StringIO except ImportError: from StringIO import StringIO COOKIEFILE = '/tmp/cookies1.lwp' LOG_FILENAME = '/tmp/musicscript.log' logging.basicConfig(filename=LOG_FILENAME, filemode = 'w', level=logging.DEBUG,) def test(url): import urllib sock = urllib.urlopen(url) import apihelper apihelper.help(sock) print str(sock.geturl()) class PostCommand: def __init__(self, url, req = None): self.request = req self.headers = '' self.url = url def perform(self): cj = cookielib.LWPCookieJar() if os.path.isfile(COOKIEFILE): cj.load(COOKIEFILE) url_retr = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) self.res = url_retr.open(self.url, self.request).read() cj.save(COOKIEFILE) logging.debug("Got to PostCommand request = %s, url = %s"%(self.request, self.url)) class Music: def __init__(self, mail, password): self.mail = mail self.password = password def login(self, url): request = 'op=a_login_attempt&email=' + self.mail + '&pass=' + self.password +'&expire=0' req = PostCommand(url+'actions/login.php', request) req.perform() logging.debug("Reply from login:\n" + req.res) if __name__ == "__main__": url = 'http://classic-online.ru/' account = "***" password = "***" tmp_file = '/tmp/temp' account = account.replace("@","%40") logging.debug('ok') mylogin = Music(account, password).login(url) |