全集网影片下载

  鉴于全集网(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="lid+_.*?"><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:
%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刚学习不久,程序的质量不咋地,欢迎各路好友多指点!

原文地址:https://www.cnblogs.com/fangqiushun/p/5442649.html