code: def request_token():
      
      while True:
          email, password, captcha_solution, captcha_id = win_login()
          options = {
              'source': 'radio',
              'alias': email,
              'form_password': password,
              'captcha_solution': captcha_solution,
              'captcha_id': captcha_id,
              'task': 'sync_channel_list'
          }
          r = requests.post('https://douban.fm/j/login', data=options, headers=HEADERS)
          req_json = json.loads(r.text, object_hook=decode_dict)
          # req_json = json.loads(r.text)
          if req_json['r'] == 0:
              post_data = {
                  # will not save
                  'liked': req_json['user_info']['play_record']['liked'],
                  'banned': req_json['user_info']['play_record']['banned'],
                  'played': req_json['user_info']['play_record']['played'],
                  'is_pro': req_json['user_info']['is_pro'],
                  'user_name': req_json['user_info']['name'],
  
                  # to save
                  'cookies': r.cookies,
                  'valume': 50,
                  'channel': 0,
                  'theme_id': 0
              }
              return post_data
  
          print(req_json['err_msg'])
          print(ERROR + req_json['err_msg'])
docs: 通过帐号,密码请求token,返回一个dict
      {
      "user_info": {
          "ck": "-VQY",
          "play_record": {
              "fav_chls_count": 4,
              "liked": 802,
              "banned": 162,
              "played": 28368
          },
          "is_new_user": 0,
          "uid": "taizilongxu",
          "third_party_info": null,
          "url": "http://www.douban.com/people/taizilongxu/",
          "is_dj": false,
          "id": "2053207",
          "is_pro": false,
          "name": "刘小备"
      },
      "r": 0
      }