心理FM登录以及播放小尝试

from selenium import webdriver
from time import sleep
import os
import json
import pprint

"""
心理FM站点测试
"""

index_url = 'http://fm.xinli001.com/'
mp3_path = 'http://fm.xinli001.com/broadcast?pk=99399655'
username_text = "xxxxxxxx"  # 用户名
password_text = "xxxxxxxx"  # 密码
cookie_filename = 'cookie.txt'

# chromedriver文件我放在项目目录下,所以手动指定了一下,已经配置了环境变量的可以删掉这个参数
browser = webdriver.Chrome(executable_path="chromedriver.exe")
browser.implicitly_wait(3000)
browser.get(index_url)


def login_check():
    login_button = browser.find_element_by_class_name("p_name")
    if "登录" in login_button.text:
        print("你还没有登录")

        if get_saved_cookies() is None:
            print("账号密码登录")
            login_event(username=username_text, password=password_text)
        else:
            for i in get_saved_cookies():
                browser.add_cookie(i)
            print("使用cookies登录")
            browser.refresh()
            pass

    print('你已经登录了')


def login_event(username, password):
    login_button = browser.find_element_by_class_name("p_name").click()

    # 切换账号密码登录标签
    password_login_button = browser.find_elements_by_class_name('js-tab')[-1]
    password_login_button.click()

    # 输入账号
    username_input = browser.find_element_by_id('login_username')
    username_input.send_keys(username)

    # 输入密码
    password_input = browser.find_element_by_id('login_password')
    password_input.send_keys(password)

    # 点击登录
    login_submit_button = browser.find_element_by_link_text('登录')
    login_submit_button.click()

    # 不等待1秒的话页面没加载成功,检测不到内容
    sleep(1)

    # 由于我的账号没有绑定手机号,所以会有这个提示
    # 关闭手机绑定标签
    if '绑定手机' in browser.page_source:
        skip_button = browser.find_element_by_link_text('跳过绑定')
        skip_button.click()

    save_cookie(browser.get_cookies())


def save_cookie(cookies, cookie_file='cookie.txt'):
    with open(cookie_file, 'w') as f:
        json.dump(cookies, f)


def get_saved_cookies(cookie_file='cookie.txt'):
    if os.path.isfile(cookie_file) and os.path.getsize(cookie_file) > 0:
        with open(cookie_file, 'r') as f:
            cookies = json.load(f)
    else:
        cookies = None

    return cookies


def play():
    play_btn = browser.find_element_by_id('playerDiv').find_elements_by_tag_name('a')[1]
    if 'pause' in play_btn.get_attribute('class'):
        # sleep(10)
        play_btn.click()


login_check()

# 播放
play()
print(browser.current_url)

##################
# 测试使用新标签打开链接
##################

# 打卡新标签页
browser.execute_script('window.open("{}","_blank");'.format(mp3_path))
# 切换到新标签
browser.switch_to.window(browser.window_handles[-1])

# 获取返回内容
body = browser.find_element_by_tag_name('body')

# 美化输出
pprint.pp(json.loads(body.text))

版权声明:
作者:Sunrise
链接:https://www.qlm.life/?p=191
来源:迷迭记录
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>