一个搜索并观看小se频的Python程序(仅供学习交流)

# -*- coding:utf-8 -*-
import requests
import os
import re
import easygui
import webbrowser as web# 获取一页的视频网页列表,每页中有20个视频网址,返回为列表
def get_one_page_list(url):url_code = requests.get(url).textlist = re.findall('original=\"\"\s*href=\"/shipin/play-\s*(\d*?)\s*\.html\"\s*title=\"\s*(.*\n*.*\n*.*?)\s*\"\starget', url_code)return list# 从视频网址中获得视频的播放地址,返回为http****.mp4的列表,地址只有一个
def get_video_download_url(url):code_text = requests.get(url).textdownload_url = re.findall('data-clipboard-text=\"(http.*?\.mp4)\"\s*id=\"link11\"', code_text)return download_urlif __name__ == '__main__':# 下载所有资源列表,并写入resource.txtbase_cod=[104, 116, 116, 112, 115, 58, 47, 47, 119, 119, 119, 46, 55, 56, 97, 118, 50, 46, 99, 111, 109]base_url=''.join(map(chr,base_cod))r = requests.get(base_url, allow_redirects=False)home_url=re.findall('(https://www\.\w*\W*\.com)/',r.headers['Location'])[0]if not os.path.exists(os.getcwd() + '/resource.txt'):mes = easygui.msgbox('您好!首次运行,需对程序初始化,点击OK开始!')if mes is None:exit()one_page = []all_page = []pro_as_str =home_url+'/shipin/list-%E7%9F%AD%E8%A7%86%E9%A2%91-'for page_num in range(163):page_url = pro_as_str + str(page_num + 1) + '\.html'one_page = get_one_page_list(page_url)all_page += one_pageos.system('cls')print(f'下载完成:{int(1000 * (page_num + 1) / 163) / 10}%')with open(os.getcwd() + '/resource.txt', 'a', encoding='utf-8') as f:encode_c = str(all_page).encode('utf=8')f.write(str(encode_c))f.close()print('下载成功,数据储存在本程序所在目录的resource.txt中,请勿删除')# 读取resource.txt中的内容with open(os.getcwd() + '/resource.txt', 'r', encoding='utf-8') as t:encode_f = t.readline()text = eval(encode_f).decode('utf=8')t.close()result = Falseresult_list = []# 输出结果供选择ard_ipt = Falsewhile result is False:if not ard_ipt:find_word = easygui.enterbox('【请输入关键字】'.center(20, '★'), title='搜索')if find_word is None:exit()result_list = re.findall(f'\(\'(\d*)\', \'(\w*\S*\s*\w*{find_word}\w*\S*\s*\w*)\'\)', text)ard_ipt = False# 对之前的结果进行清除os.system('cls')# 对搜索结果打印输出pro_u_str = home_url+'/shipin/play-'if len(result_list) != 0:num = 0print('搜索结果如下:')for it in result_list:print(f'【{num}】——{it[1]}')num += 1while True:# 输入需要播放的序号,返回strsear = easygui.enterbox('请输入序号开始播放', title='选择需要播放的视频')if sear is None:breaktry:sear_num = int(sear)except:find_word = str(sear)ard_ipt = Truebreakurl_sear = result_list[sear_num][0]url = pro_u_str + url_sear + '.html'd_load_url = get_video_download_url(url)[0]web.open(d_load_url)else:print('抱歉,未搜索到相关内容,请重新输入!')result = Falsecontinue


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部