今天,我们来一起听一下讲故事。
网址:’https://www.xuexi.cn/xxqg.html?id=e433dab0149a4d42bb914b7a296ea7ff#00c6‘
1.模拟器打开网址
browse.get('https://www.xuexi.cn/xxqg.html?id=e433dab0149a4d42bb914b7a296ea7ff#00c6') time.sleep(3)
2.滚动到”听故事“
browse.execute_script(f"window.scrollTo(0, document.body.scrollHeight/(5/4));")
3.搜索故事专辑。
list0 = browse.find_element(By.CSS_SELECTOR,'div._3qq02yp6RQqg-s-90jrYAn[data-data-id="listenTrumpetStation"]').find_elements(By.CSS_SELECTOR,'div.innerPic')
4.点击一个专辑。
5.切换窗口。
all_handles = browse.window_handles browse.switch_to.window(all_handles[-1])
6.搜索专辑条目
list1 = browse.find_elements(By.CSS_SELECTOR,'ul.album-list .album-list-item')
7.播放条目
item1.find_element(By.CSS_SELECTOR, 'span.item-play').click()
8.保持时间
while True: play_time_current = browse.find_element(By.CSS_SELECTOR, '.y-audio-player-main .y-audio-current').text play_time_total = browse.find_element(By.CSS_SELECTOR, '.y-audio-player-main .y-audio-total').text if play_time_current == play_time_total: try: browse.find_element(By.CSS_SELECTOR, '.y-audio-player-main .y-audio-pause').click() except: pass break time.sleep(1)
9.完整代码:
import time from selenium import webdriver from selenium.webdriver.common.by import By import re,os import datetime browse = webdriver.Edge() browse.maximize_window() # 窗口最大化 browse.implicitly_wait(30)
print('版块:讲故事') browse.get('https://www.xuexi.cn/xxqg.html?id=e433dab0149a4d42bb914b7a296ea7ff#00c6') time.sleep(3) browse.execute_script(f"window.scrollTo(0, document.body.scrollHeight/(5/4));") time.sleep(3) # list0 = browse.find_elements(By.CSS_SELECTOR,'.left-part')[4].find_elements(By.CSS_SELECTOR,'.tab-item.center-item') list0 = browse.find_element(By.CSS_SELECTOR,'div._3qq02yp6RQqg-s-90jrYAn[data-data-id="listenTrumpetStation"]').find_elements(By.CSS_SELECTOR,'div.innerPic') print(len(list0)) for item0 in list0: item0.click() time.sleep(1) all_handles = browse.window_handles browse.switch_to.window(all_handles[-1]) time.sleep(1) title_album = browse.find_element(By.CSS_SELECTOR,'span.album-text.nowrap').text print(title_album) list1 = browse.find_elements(By.CSS_SELECTOR,'ul.album-list .album-list-item') for i in range(7): browse.execute_script("window.scrollBy(0,48);") time.sleep(0.1) for flag, item1 in enumerate(list1): browse.execute_script("window.scrollBy(0,48);") print(flag, item1.text) item1.find_element(By.CSS_SELECTOR, 'span.item-play').click() while True: play_time_current = browse.find_element(By.CSS_SELECTOR, '.y-audio-player-main .y-audio-current').text play_time_num = int(play_time_current.split(':')[0]) * 60 + int(play_time_current.split(':')[1]) play_time_total = browse.find_element(By.CSS_SELECTOR, '.y-audio-player-main .y-audio-total').text if play_time_current == play_time_total or play_time_num > 5: # if play_time_current == play_time_total: try: browse.find_element(By.CSS_SELECTOR, '.y-audio-player-main .y-audio-pause').click() except: pass break time.sleep(1) browse.close() browse.switch_to.window(all_handles[-2]) time.sleep(1)