全集网影片下载
鉴于全集网(http://www.quanji.la/)更新影片较快,本人多次到全集网下载电影或连续剧,但有时不知道想看的新片到底更新了没有,每次都要打开浏览器看一下比较繁琐,故写了个小程序实现输入影片自动下载。直接上代码:
#!/user/bin/python #encoding=utf-8 #此程序只是模仿默认浏览器打开迅雷链接实现自动下载,电脑必须装有迅雷,下载路径为迅雷默认下载路径 import requests import re import webbrowser import Levenshtein #相识度匹配模块,用于判断下载连续剧 import time #输入电影名并生成data内容 def get_datas(): search_name = raw_input('please input the video name you wanted:') data = {'wd':search_name} #data由抓包软件HTTPAnalyzerFullV7获得 return search_name,data ##post方式获取网页内容 def get_response0(data,search_url): response = requests.post(url=search_url,data=data).content return response ##get方式获取页面内容 def get_response1(links_url): response = requests.get(links_url).content return response ##获取电影下载页面url def get_downloadpage(): datas = get_datas() search_name = datas[0] data = datas[1] response = get_response0(data,search_url) downloadpage_url = re.findall('</a></div><a href="(.*?)"><h3>.*?%s.*?</h3>'%search_name,response) return downloadpage_url ##判断电影是否存在,若存在,下载电影 def download_movie(search_num,start_url): try: links_url = get_downloadpage() links_url = start_url+links_url[0] links_url = links_url.split('"><h3>')[0] print 'downloadpage_url:',links_url response = get_response1(links_url) ##获取内容下载链接 links_list = re.findall('<li id="li\d+_.*?"><a href="(.*?)" title',response) print 'The num of links is %s'%len(links_list) #记录可下载的链接数 fail_time = 0 #记录下载失败次数 download_num = 0 #记录下载次数 link_standard = links_list[0] for link in links_list: #判断链接相似度(字符串长度一致),若存在,则继续;不存在则退出循环 try: Levenshtein.hamming(link,link_standard) time.sleep(3) #打开链接的间断时间 except: break #尝试下载 try: webbrowser.open(link) download_num += 1 print 'Download link:\n%s'%link print 'Downloading...%s'%download_num except: fail_time += 1 pass if fail_time != 0: print 'Have failed %s times!'%fail_time if fail_time == len(links_list): print 'Download fail!!!' except: if search_num < 2: print "The movie name you had input is not foud or incomplete,please try again..." search_num += 1 download_movie(search_num,start_url) else: print 'Beyond the input limit!' if __name__ == '__main__': start_url = 'http://www.quanji.la' #全集网首页 search_url = start_url + '/index.php?s=vod-search' #搜索页面 search_num = 0 #记录输入次数 download_movie(search_num,start_url)
程序可下电影也可下连续剧,最主要的前提是输入的“search_name”一定要对(我们找片子的时候特别是外国片会有多个译名,输入的译名全集网得有)。
python刚学习不久,程序的质量不咋地,欢迎各路好友多指点!