Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > python + js


Автор: nikaan 13.4.2010, 15:38
Я решил на досуге поиграться с питоном - и для этого написать себе утилиту, которая нужна.

подробнее - есть сайт http://classic-online.ru/account/playlist/ (и много подобных) хочется уметь прослушивать треки В СЛУЧАЙНОМ порядке, а не подряд.

Насколько я понимаю, вопрос в том, как запустить соответствующий script со странички. (получив, предварительно, список их всех со странички и распознав, какие из них проигрыватели...)

Пока из достижения - мой скрипт на питоне смог залогиниться на этом сайте и получить html-код странички smile

Теперь, собственно, вопль о помощи :
я про web не знаю ничего. Ни как работают сервера, ни html (хотя и накарябал себе сайт - копируя кусочки кода с понравившихся страничек), ни js, ни что такое аякс, ни вообще ничего - поскольку по образованию я не программист.

+ я ограничен по времени (я не могу взять все стандартные учебники по вышеперечисленному и прочитать. Разве что по ночам.)


Поэтому просьба - если Вы представляете себе, как сделать то, что я хочу (предварительно посмотрев на код странички http://classic-online.ru/account/playlist/ или http://www.styrov.ru/media.html?PHPSESSID=3cfdadbb66474368b39b8b0451d7e01b smile), то киньтесь ссылками, прочитав которые, я смогу это сам сделать.

Можно ссылки на книги - но с указанием глав(опять же, проблема времени))

Всё это в предположении, что я не знаю ничего :(

спасибо.

Автор: pythonwin 13.4.2010, 23:20
Цитата(nikaan @  13.4.2010,  18:38 Найти цитируемый пост)
ни html (хотя и накарябал себе сайт - копируя кусочки кода с понравившихся страничек), ни js, ни что такое аякс, ни вообще ничего - поскольку по образованию я не программист.

нужно учить
nikaan, я перечитав несколько раз Ваш пост, понял что Вы не знаете html, css, JS, python и php, но вопроса по программированию или компоненте не нашел. Если Вам нужен рабочий скрипт для проигрывания музыки на вашем ПК, то Вам в раздел программного опбеспечения в зависимости от операционной системы, если же Вам нужен веб-сервис на питоне для предоставления интерфейсов плейлистов посетителям сайта, то нужно смотреть на чём написан сайт - может есть компонента к вашему движку сайта.

Автор: nikaan 14.4.2010, 10:30
хорошо,  вопрос такой :

как на питоне по страничке узнать список контролов, которые там есть, информацию о них.

И как их запустить потом.

как обычно проигрывается музыка, при нажатии на кнопочку? (данные кусочками передаются моему flash-плейеру? или что?)


ps.я в процессе изучения python. Знаю java, писал на C#, VB. Но о web я ничего не знаю, да.

Автор: pythonwin 14.4.2010, 10:35
Цитата(nikaan @  14.4.2010,  13:30 Найти цитируемый пост)
список контролов

каких контролов? что Вы имееет под словом "контролы"

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
    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)




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)