鑒於全集網(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剛學習不久,程序的質量不咋地,歡迎各路好友多指點!