python爬虫下载影视网站的电影

news/2024/10/17 22:13:58/

python爬虫下载影视网站的电影

  1. 我这边选取了vip网站
  2. F12打开调试抓包模式
  3. 搜索影片的名称, 观察看看给那个url地址发送了请求,
    在这里插入图片描述 我看到了 这个请求需要携带发送数据 而这个数据就是我们要的影片名字
    这样的就话就可以构建第一段代码
class Video():"""获取电影信息"""def __init__(self):self.query = input("请输入你要下的电影或者电视:")# query = "闪电侠"self.form_data = {"wd": self.query}self.url = "http://m.6080w.com/index.php?m=vod-search"self.headers = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,zh;q=0.9","Cache-Control": "max-age=0","Connection": "keep-alive","Content-Length": "30","Content-Type": "application/x-www-form-urlencoded","Cookie": "__cfduid=d9734b9dde8ba7cb1e88c1ea50773d3081604822345; UM_distinctid=175a6dda4fc2f-0593ff933e9314-303464-15f900-175a6dda4fdaac; CFWztgVisitTotal_643_Cookie=8; cck_lasttime=1604903088259; cck_count=2; PHPSESSID=33ctoent9p7gmees4v57evahqr; Hm_lvt_1be9687a89f08192cf85d11531ef7b32=1604886953,1604887736,1604907659,1604908160; CNZZDATA1276411901=1025499974-1604819080-null%7C1604932558; mac_history=%7Bvideo%3A%5B%7B%22name%22%3A%22%u7784%u51C6%22%2C%22link%22%3A%22/Movie/234395.html%22%2C%22typename%22%3A%22%u79D1%u5E7B%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-07-24/159558122926.jpg%22%7D%2C%7B%22name%22%3A%22%u6CA1%u5927%u6CA1%u5C0F%22%2C%22link%22%3A%22/Movie/9415.html%22%2C%22typename%22%3A%22%u559C%u5267%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22tu.php%3Ftu%3Dr1.ykimg.com/05160000513555459792737957002CAE%22%7D%2C%7B%22name%22%3A%22%u884C%u5C38%u4E4B%u60E7%u7B2C%u516D%u5B63%22%2C%22link%22%3A%22/Movie/241403.html%22%2C%22typename%22%3A%22%u6B27%u7F8E%u5267%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-10-12/160243920319.jpg%22%7D%2C%7B%22name%22%3A%22%u6B66%u795E%u4E3B%u5BB0%22%2C%22link%22%3A%22/Movie/220270.html%22%2C%22typename%22%3A%22%u52A8%u6F2B%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-03-08/15836400263.jpg%22%7D%2C%7B%22name%22%3A%22%u7535%u51FB%u5C0F%u5B503%u4E4B%u56DB%u5723%u56E2%22%2C%22link%22%3A%22/Movie/199684.html%22%2C%22typename%22%3A%22%u52A8%u6F2B%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2019-08-03/156477877615.jpg%22%7D%2C%7B%22name%22%3A%22%u9B3C%u5439%u706F%u4E4B%u9F99%u5CAD%u8FF7%u7A9F%22%2C%22link%22%3A%22/Movie/222460.html%22%2C%22typename%22%3A%22%u5267%u60C5%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-04-03/158590081711.jpg%22%7D%2C%7B%22name%22%3A%22%u91CD%u88C5%u673A%u7532%22%2C%22link%22%3A%22/Movie/243395.html%22%2C%22typename%22%3A%22%u52A8%u4F5C%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-11-08/16048116123.jpg%22%7D%2C%7B%22name%22%3A%22%u751F%u751F%u4E16%u4E16%22%2C%22link%22%3A%22/Movie/228446.html%22%2C%22typename%22%3A%22%u6E2F%u53F0%u5267%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-06-11/159185161516.jpg%22%7D%2C%7B%22name%22%3A%22%u4E24%u5929%u4E00%u591C%u7B2C%u56DB%u5B63%22%2C%22link%22%3A%22/Movie/213564.html%22%2C%22typename%22%3A%22%u7EFC%u827A%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2019-12-10/157590726511.jpg%22%7D%2C%7B%22name%22%3A%22%u641C%u7D22%5B2020%5D%22%2C%22link%22%3A%22/Movie/241908.html%22%2C%22typename%22%3A%22%u65E5%u97E9%u5267%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-10-18/160299720137.jpg%22%7D%2C%7B%22name%22%3A%22%u9752%u7C2A%u9501%u4E09%u5343%22%2C%22link%22%3A%22/Movie/243447.html%22%2C%22typename%22%3A%22%u5267%u60C5%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-11-09/16048836021.jpg%22%7D%2C%7B%22name%22%3A%22%u6211%u5BB6%u7684%u718A%u5B69%u5B50%22%2C%22link%22%3A%22/Movie/91863.html%22%2C%22typename%22%3A%22%u7EFC%u827A%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2019-06-22/156119406926.jpg%22%7D%5D%7D; cf_clearance=56e9fbefec1664c5ebc36ffdb29e75cff9845d67-1604937518-0-1zc9693d2bz50e9279eza2074e5-150; Hm_lpvt_1be9687a89f08192cf85d11531ef7b32=1604937549","Host": "m.6080w.com","Origin": "http://m.6080w.com","Referer": "http://m.6080w.com/","Upgrade-Insecure-Requests": "1","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"}
response = requests.post(url=url, data=self.form_data ,headers=headers)
return response.content.decode()

思路: 获取所需视频的信息> 获取所需视频的视频页数 > 获取所需视频的视频地址

  1. 获取简介里面的ur地址 再手动添加http加域名
    在这里插入图片描述
    5.接下来利用xpath来提取url
    在这里插入图片描述
    5.接下来到了视频的主界面了, 视频的加载均为动态的视频地址 每一个地址都是一小段视频
    在这里插入图片描述
    分析 找到了结尾的文件名
    在这里插入图片描述
    发现是一个文件存着所有信息

下面就可以构建url进行所有片段视频的下载, 再用视频拼接软件进行片段视频代码的拼接。
在这里插入图片描述
下面直接上源码:
我定义了5个模块它们都是相互依赖
def_main.py

from 电影大全 import void
from 电影大全 import program_apiclass Movie_House():def run(self):# 打印帮助文档api = program_api.help_api()api.help()#实现程序movie = void.Down_video()movie.Run()def main():m = Movie_House()m.run()if __name__ == '__main__':main()

down_video.py

import re
import requests
import os
from lxml import etree
import sys,time
from tqdm import tqdmclass Down():def __init__(self, video_name):self.video_name = video_nameself.url = "//www.6080w.com/prestrain.htmlhttps://zuidajiexi.net/m3u8.html?url=https://douban.donghongzuida.com/20201108/12160_6b904f04/index.m3u8"# self.url = input("请输入视频网址:")print("具体格式:")print("//www.6080w.com/prestrain.htmlhttps://zuidajiexi.net/m3u8.html?url=https://douban.donghongzuida.com/20201108/12160_6b904f04/index.m3u8")self.url2 = self.url.split("="[-1])[-1].split("index")[0] + "1000k/hls/index.m3u8"self.url21 = self.url.split("="[-1])[-1].split("index")[0] + "1000k/hls/"# print(url2)# print(url21)self.headers3 = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"}def get_respones(self, url, headers):ret = requests.get(url=url, headers=headers)return ret.content.decode()def D_file(self):path = str(self.video_name)if not os.path.exists(path):os.mkdir(path)print("文件创建成功")def run(self):response = self.get_respones(self.url2, self.headers3)# print(response)res = re.findall(r'.*?ts', response)# print(res)num = 0print("视频开始下载请稍后......")start_time = time.time()for rets in tqdm(res, ncols=50):time.sleep(0.05)t = str(rets).strip()urls = self.url21 + t# print(urls, end=" ")response = requests.get(url=urls, headers=self.headers3)data = response.content# print(data)self.D_file()file_name = "./" + self.video_name + "//第{}段视频.mp4".format(num)with open(file_name, 'wb') as f:f.write(data)print("第{}段视频保存成功".format(num))num += 1end_time = time.time()print("恭喜你视频下载成功! 你花费了{}时间".format((end_time-start_time)))

program_api.py

class help_api():def help(self):print("1、运行def_main.py文件将程序运行\n""2、按照提示录入数据\n""3、直到提示出现: 请点击页面地址复制url视频接口\n""4、点击出现的链接 (最好使用chrome(谷歌浏览器))按F12 进入网页调试工具\n""5、点击Elements页面 按住Ctrl+F 进入元素查找 然后将控制台的xpath内容填写进去\n""6、复制里面的url链接 填写到url视频接口中\n""7、下载视频合成工具(推荐使用格式工厂)""8、将创建保存的文件夹下的所有片段视频进行合并")

video_api.py

import requests
from lxml import etreeclass Video():"""获取电影信息"""def __init__(self):self.query = input("请输入你要下的电影或者电视:")# query = "闪电侠"self.form_data = {"wd": self.query}self.url = "http://m.6080w.com/index.php?m=vod-search"self.headers = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,zh;q=0.9","Cache-Control": "max-age=0","Connection": "keep-alive","Content-Length": "30","Content-Type": "application/x-www-form-urlencoded","Cookie": "__cfduid=d9734b9dde8ba7cb1e88c1ea50773d3081604822345; UM_distinctid=175a6dda4fc2f-0593ff933e9314-303464-15f900-175a6dda4fdaac; CFWztgVisitTotal_643_Cookie=8; cck_lasttime=1604903088259; cck_count=2; PHPSESSID=33ctoent9p7gmees4v57evahqr; Hm_lvt_1be9687a89f08192cf85d11531ef7b32=1604886953,1604887736,1604907659,1604908160; CNZZDATA1276411901=1025499974-1604819080-null%7C1604932558; mac_history=%7Bvideo%3A%5B%7B%22name%22%3A%22%u7784%u51C6%22%2C%22link%22%3A%22/Movie/234395.html%22%2C%22typename%22%3A%22%u79D1%u5E7B%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-07-24/159558122926.jpg%22%7D%2C%7B%22name%22%3A%22%u6CA1%u5927%u6CA1%u5C0F%22%2C%22link%22%3A%22/Movie/9415.html%22%2C%22typename%22%3A%22%u559C%u5267%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22tu.php%3Ftu%3Dr1.ykimg.com/05160000513555459792737957002CAE%22%7D%2C%7B%22name%22%3A%22%u884C%u5C38%u4E4B%u60E7%u7B2C%u516D%u5B63%22%2C%22link%22%3A%22/Movie/241403.html%22%2C%22typename%22%3A%22%u6B27%u7F8E%u5267%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-10-12/160243920319.jpg%22%7D%2C%7B%22name%22%3A%22%u6B66%u795E%u4E3B%u5BB0%22%2C%22link%22%3A%22/Movie/220270.html%22%2C%22typename%22%3A%22%u52A8%u6F2B%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-03-08/15836400263.jpg%22%7D%2C%7B%22name%22%3A%22%u7535%u51FB%u5C0F%u5B503%u4E4B%u56DB%u5723%u56E2%22%2C%22link%22%3A%22/Movie/199684.html%22%2C%22typename%22%3A%22%u52A8%u6F2B%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2019-08-03/156477877615.jpg%22%7D%2C%7B%22name%22%3A%22%u9B3C%u5439%u706F%u4E4B%u9F99%u5CAD%u8FF7%u7A9F%22%2C%22link%22%3A%22/Movie/222460.html%22%2C%22typename%22%3A%22%u5267%u60C5%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-04-03/158590081711.jpg%22%7D%2C%7B%22name%22%3A%22%u91CD%u88C5%u673A%u7532%22%2C%22link%22%3A%22/Movie/243395.html%22%2C%22typename%22%3A%22%u52A8%u4F5C%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-11-08/16048116123.jpg%22%7D%2C%7B%22name%22%3A%22%u751F%u751F%u4E16%u4E16%22%2C%22link%22%3A%22/Movie/228446.html%22%2C%22typename%22%3A%22%u6E2F%u53F0%u5267%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-06-11/159185161516.jpg%22%7D%2C%7B%22name%22%3A%22%u4E24%u5929%u4E00%u591C%u7B2C%u56DB%u5B63%22%2C%22link%22%3A%22/Movie/213564.html%22%2C%22typename%22%3A%22%u7EFC%u827A%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2019-12-10/157590726511.jpg%22%7D%2C%7B%22name%22%3A%22%u641C%u7D22%5B2020%5D%22%2C%22link%22%3A%22/Movie/241908.html%22%2C%22typename%22%3A%22%u65E5%u97E9%u5267%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-10-18/160299720137.jpg%22%7D%2C%7B%22name%22%3A%22%u9752%u7C2A%u9501%u4E09%u5343%22%2C%22link%22%3A%22/Movie/243447.html%22%2C%22typename%22%3A%22%u5267%u60C5%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-11-09/16048836021.jpg%22%7D%2C%7B%22name%22%3A%22%u6211%u5BB6%u7684%u718A%u5B69%u5B50%22%2C%22link%22%3A%22/Movie/91863.html%22%2C%22typename%22%3A%22%u7EFC%u827A%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2019-06-22/156119406926.jpg%22%7D%5D%7D; cf_clearance=56e9fbefec1664c5ebc36ffdb29e75cff9845d67-1604937518-0-1zc9693d2bz50e9279eza2074e5-150; Hm_lpvt_1be9687a89f08192cf85d11531ef7b32=1604937549","Host": "m.6080w.com","Origin": "http://m.6080w.com","Referer": "http://m.6080w.com/","Upgrade-Insecure-Requests": "1","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"}self.headers2 = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,zh;q=0.9","Cache-Control": "max-age=0","Connection": "keep-alive","Cookie": "__cfduid=d9734b9dde8ba7cb1e88c1ea50773d3081604822345; UM_distinctid=175a6dda4fc2f-0593ff933e9314-303464-15f900-175a6dda4fdaac; CFWztgVisitTotal_643_Cookie=8; cck_lasttime=1604903088259; cck_count=2; PHPSESSID=33ctoent9p7gmees4v57evahqr; Hm_lvt_1be9687a89f08192cf85d11531ef7b32=1604886953,1604887736,1604907659,1604908160; CNZZDATA1276411901=1025499974-1604819080-null%7C1604932558; mac_history=%7Bvideo%3A%5B%7B%22name%22%3A%22%u7784%u51C6%22%2C%22link%22%3A%22/Movie/234395.html%22%2C%22typename%22%3A%22%u79D1%u5E7B%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-07-24/159558122926.jpg%22%7D%2C%7B%22name%22%3A%22%u6CA1%u5927%u6CA1%u5C0F%22%2C%22link%22%3A%22/Movie/9415.html%22%2C%22typename%22%3A%22%u559C%u5267%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22tu.php%3Ftu%3Dr1.ykimg.com/05160000513555459792737957002CAE%22%7D%2C%7B%22name%22%3A%22%u884C%u5C38%u4E4B%u60E7%u7B2C%u516D%u5B63%22%2C%22link%22%3A%22/Movie/241403.html%22%2C%22typename%22%3A%22%u6B27%u7F8E%u5267%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-10-12/160243920319.jpg%22%7D%2C%7B%22name%22%3A%22%u6B66%u795E%u4E3B%u5BB0%22%2C%22link%22%3A%22/Movie/220270.html%22%2C%22typename%22%3A%22%u52A8%u6F2B%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-03-08/15836400263.jpg%22%7D%2C%7B%22name%22%3A%22%u7535%u51FB%u5C0F%u5B503%u4E4B%u56DB%u5723%u56E2%22%2C%22link%22%3A%22/Movie/199684.html%22%2C%22typename%22%3A%22%u52A8%u6F2B%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2019-08-03/156477877615.jpg%22%7D%2C%7B%22name%22%3A%22%u9B3C%u5439%u706F%u4E4B%u9F99%u5CAD%u8FF7%u7A9F%22%2C%22link%22%3A%22/Movie/222460.html%22%2C%22typename%22%3A%22%u5267%u60C5%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-04-03/158590081711.jpg%22%7D%2C%7B%22name%22%3A%22%u91CD%u88C5%u673A%u7532%22%2C%22link%22%3A%22/Movie/243395.html%22%2C%22typename%22%3A%22%u52A8%u4F5C%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-11-08/16048116123.jpg%22%7D%2C%7B%22name%22%3A%22%u751F%u751F%u4E16%u4E16%22%2C%22link%22%3A%22/Movie/228446.html%22%2C%22typename%22%3A%22%u6E2F%u53F0%u5267%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-06-11/159185161516.jpg%22%7D%2C%7B%22name%22%3A%22%u4E24%u5929%u4E00%u591C%u7B2C%u56DB%u5B63%22%2C%22link%22%3A%22/Movie/213564.html%22%2C%22typename%22%3A%22%u7EFC%u827A%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2019-12-10/157590726511.jpg%22%7D%2C%7B%22name%22%3A%22%u641C%u7D22%5B2020%5D%22%2C%22link%22%3A%22/Movie/241908.html%22%2C%22typename%22%3A%22%u65E5%u97E9%u5267%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-10-18/160299720137.jpg%22%7D%2C%7B%22name%22%3A%22%u9752%u7C2A%u9501%u4E09%u5343%22%2C%22link%22%3A%22/Movie/243447.html%22%2C%22typename%22%3A%22%u5267%u60C5%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-11-09/16048836021.jpg%22%7D%2C%7B%22name%22%3A%22%u6211%u5BB6%u7684%u718A%u5B69%u5B50%22%2C%22link%22%3A%22/Movie/91863.html%22%2C%22typename%22%3A%22%u7EFC%u827A%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2019-06-22/156119406926.jpg%22%7D%5D%7D; cf_clearance=56e9fbefec1664c5ebc36ffdb29e75cff9845d67-1604937518-0-1zc9693d2bz50e9279eza2074e5-150; Hm_lpvt_1be9687a89f08192cf85d11531ef7b32=1604937754","Host": "m.6080w.com","Referer": "http://m.6080w.com/index.php?m=vod-search","Upgrade-Insecure-Requests": "1","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"}self.headers3 = {"Cookie": "__cfduid=d9734b9dde8ba7cb1e88c1ea50773d3081604822345; UM_distinctid=175a6dda4fc2f-0593ff933e9314-303464-15f900-175a6dda4fdaac; CFWztgFirstShowTime_643_Cookie=2020-11-8%2023%3A9%3A48; CFWztgVisitTotal_643_Cookie=7; cck_count=1; cck_lasttime=1604858787429; mac_history=%7Bvideo%3A%5B%7B%22name%22%3A%22%u95EA%u7535%u4FA0%u7B2C%u4E94%u5B63%22%2C%22link%22%3A%22/Movie/139107.html%22%2C%22typename%22%3A%22%u6B27%u7F8E%u5267%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2018-11-28/154340757520.jpg%22%7D%2C%7B%22name%22%3A%22%u91CD%u88C5%u673A%u7532%22%2C%22link%22%3A%22/Movie/243410.html%22%2C%22typename%22%3A%22%u79D1%u5E7B%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-11-08/160482961924.jpg%22%7D%2C%7B%22name%22%3A%22%u6F2B%u5A01%u82F1%u96C4%uFF1A%u795E%u5947%u641E%u7B11%22%2C%22link%22%3A%22/Movie/233192.html%22%2C%22typename%22%3A%22%u52A8%u6F2B%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-07-13/159462720510.jpg%22%7D%2C%7B%22name%22%3A%22%u9B3C%u5439%u706F%u4E4B%u9F99%u5CAD%u8FF7%u7A9F%22%2C%22link%22%3A%22/Movie/222460.html%22%2C%22typename%22%3A%22%u5267%u60C5%u7247%22%2C%22typelink%22%3A%22/vodlist/-1.html%22%2C%22pic%22%3A%22upload/vod/2020-04-03/158590081711.jpg%22%7D%5D%7D; CNZZDATA1276411901=1025499974-1604819080-null%7C1604862301; cf_clearance=2326376d4521dcf683859b555eca275817ed2fef-1604863264-0-1zc9693d2bz50e9279eza2074e5-150; Hm_lvt_1be9687a89f08192cf85d11531ef7b32=1604863389,1604863667,1604863812,1604863960; PHPSESSID=8qrr0ovqf2qt86gj70glcphvm1; Hm_lpvt_1be9687a89f08192cf85d11531ef7b32=1604864668","user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"}def Get_Response(self, url, headers, code=True):"""发送请求获取响应"""if code:response = requests.post(url=url, data=self.form_data ,headers=headers)return response.content.decode()else:response = requests.get(url=url, data=self.form_data, headers=headers)return response.content.decode()def Wash_Html_Data(self, srt_html):"""清洗数据"""html = etree.HTML(srt_html)# 对页面进行分组# div = html.xpath("//div[@class='container']/div[@class='row']/div/div/div")div = html.xpath("//div[@class='container']/div[@class='row']/div/div/div")self.video_list = []self.url_list = []self.video_url = []for div_tmp in div:div_dict = {}# 提取电影名称div_dict['video_name'] = div_tmp.xpath("./div/dl/dd/div[@class='head']/h3/text()")div_dict['video_name'] = div_dict['video_name'][0] if len(div_dict['video_name']) > 0 else None# 提取封面里的详细的地址video_url = div_tmp.xpath("./div/dl/dt/a/@href")video_url = "http://m.6080w.com/" + video_url[0] if len(video_url) > 0 else Noneself.video_url.append(video_url)div_dict['video_url'] = div_tmp.xpath("./div/dl/dt/a/@href")div_dict['video_url'] = "http://m.6080w.com/" + div_dict['video_url'][0] if len(div_dict['video_url']) > 0 else None# 提取电影封面地址div_dict['video_img_url'] = div_tmp.xpath("./div/dl/dt/a/@style")div_dict['video_img_url'] = div_dict['video_img_url'][0].split("(")[-1].split(")")[0] if len(div_dict['video_img_url']) > 0 else None# 提取电影评分div_dict['video_score'] = div_tmp.xpath("./div/dl/dd/div/span/text()")div_dict['video_score'] = div_dict['video_score'][0] if len(div_dict['video_score']) > 0 else None# 提取电影主演div_dict['video_header'] = div_tmp.xpath("./div/dl/dd/ul/li/text()")div_dict['video_header'] = div_dict['video_header'][0] if len(div_dict['video_header']) > 0 else None# 提取电影导演# 提取电影地区# 提取电影类型# 提取电影语言# 提取电影年份self.video_list.append(div_dict)# 提取下一页的 url地址# http://m.6080w.com/next = html.xpath("/html/body/div[1]/div/div[1]/div/div[22]/a[2]/@href")nex_url = "http://m.6080w.com/" + next[0] if len(next) > 0 else Noneself.url_list.append(nex_url)# print(url_list)return self.video_list, self.url_list, self.video_urldef Print_Data(self, video_list):"""打印可视视频数据"""num = 1for data in video_list:print()print("第{}部:".format(num))print("电影名称:{}\n详细地址:{}\n电影封面地址:{}\n电影评分:{}\n电影主演:{}".format(data['video_name'], data['video_url'],data['video_img_url'], data['video_score'], data['video_header']))print("#"*50)print()num += 1

void.py

from 电影大全 import video_api
from lxml import etree
import re
from  电影大全 import down_videoclass Down_video(video_api.Video):def url_video(self, url):for tmp in url:self.video_in_urls.append(tmp)def wash_html(self, str_html):"""清洗数据"""html = etree.HTML(str_html)html_div = html.xpath("//div[@id='playlist1']/ul/li") # 分组video_name_list = []video_name = {}dict_list = []for div in html_div:div_dict = {}# 获取页码数div_dict['video_code_number'] = div.xpath("./a/text()")div_dict['video_code_number'] = div_dict['video_code_number'][0] if len(div_dict['video_code_number']) > 0 else None# 获取对应的url地址div_dict['video_url'] = div.xpath("./a/@href")div_dict['video_url'] = "http://m.6080w.com/" + div_dict['video_url'][0] if len(div_dict) > 0 else Nonedict_list.append(div_dict)# 获取片名video_name['video_name'] = html.xpath("//div[@class='hy-video-details clearfix']/div/dl/dd/div/h3/text()")video_name['video_name'] = video_name['video_name'][0] if len(video_name['video_name']) > 0 else None# 获取片名信息video_name['video_data'] = html.xpath("//div[@class='hy-video-details clearfix']/div/dl/dd/ul/li/text()")video_name['video_data'] = video_name['video_data'][0] if len(video_name['video_data']) > 0 else Nonevideo_name_list.append(video_name)return  dict_list, video_name_listdef inedx_html(self, str_html):print(str_html)html = etree.HTML(str_html)# 获取tsplay_url = html.xpath("//div[@class='container']/div/div/div/div/div/table/tbody/tr/td/iframe/@src")print(play_url)# https://youku.cdn3-okzy.com/20191209/4820_5020c357/1000k/hls/index.m3u8play_url = play_url.split("="[-1])[-1].split("index")[0] + "1000k/hls/index.m3u8"video_url = play_url.split("="[-1])[-1].split("index")[0] + "1000k/hls/"response = self.Get_Response(url=play_url, headers=self.headers3, code=False)res = re.findall(r'c.*?ts', response)for ts in res:url = video_url+tsprint(url)def print_wash_data(self, wash_dict_list, wash_video_name_list):"""打印清洗数据"""url = []for data in wash_dict_list:print()print("片名:{}\n片名信息:{}\n集数:{}\n链接:{}".format(wash_video_name_list[0]['video_name'],wash_video_name_list[0]['video_data'] ,data['video_code_number'], data['video_url']))# print("url=====", data['video_url'])url.append(data['video_url'])print("#" * 50)print()page = int(input("请输入你要下载的视频的集数:"))url.reverse()urls = url[page-1]print("请点击页面地址复制url视频接口")print("本集/本电影的url地址如下\n:{}".format(urls))print("xpath://div[@class='container']/div/div/div/div/div/table/tbody/tr/td/iframe/@src")down = down_video.Down(self.query)down.run()def content(self, url):"""获取url发送请求获取响应"""str_html = self.Get_Response(url=url, headers=self.headers2)wash_dict_list, wash_video_name_list = self.wash_html(str_html)self.print_wash_data(wash_dict_list=wash_dict_list, wash_video_name_list=wash_video_name_list)def Run(self):url = self.urlprint("正在爬取视频数据, 请稍候...")self.video_in_urls = []while url != None:# get responsestr_html = self.Get_Response(url=url, headers=self.headers)# print(str_html)video_lists, next_video_url, video_urls = self.Wash_Html_Data(str_html)# print(next_video_url)self.url_video(url=video_urls)# 打印视频数据self.Print_Data(video_list=video_lists)num = 0url = next_video_url[num]num += 1mv = int(input("请选择你要下载的影片:"))url = self.video_in_urls[mv-1]self.content(url=url)

提取成功:
在这里插入图片描述
合并成功:在这里插入图片描述

播放成功:
在这里插入图片描述


http://www.ppmy.cn/news/598220.html

相关文章

如何找到电影的下载链接

今天要讨论的搜索技巧是如何能找到电影的下载链接,通过以下的搜索技巧,你就不需要费劲的去好几个网站上寻找下载链接了。 下面使用的是Google dorking查询语法来进行下载链接的搜索: 需要用的工具: 1、 浏览器 2、 一点耐心 第…

爬虫python下载电影_python爬虫:抓取下载电影文件,合并ts文件为完整视频

目标网站:https://www.88ys.cc/vod-play-id-58547-src-1-num-1.html 反贪风暴4 对电影进行分析 我们发现,电影是按片段一点点加载出来的,我们分别抓取所有ts文件,然后合并成一个完整的文件即可下载到完整电影 代码如下: # https://www.88ys.cc/vod-play-id-58547-src-1…

android下载文件地址,安卓迅雷下载的文件在哪里迅雷下载文件存放位置-独木成林...

其实一般播放器都会有显示下载文件的默认路径的。按照路径提供的位置在手机文件管理器就很容易能找到,像手机迅雷的默认保存路径是在手机存储卡的 “ThunderDownload”文件夹下。下面就简单演示查找步骤供参考。 查找手机迅雷下载的视频文件方法 我们先来看看手机迅…

如何利用python下载电影_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接...

点击上方“IT共享之家”,进行关注 回复“资料”可获赠Python学习福利 【一、项目背景】 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态。 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,…

android lut格式文件下载,一键调色?教你用Lut直接调出电影色调(内含下载)

原标题:一键调色?教你用Lut直接调出电影色调(内含下载) 点击年味海报,即可在线阅读“故乡年味”参赛细则 教你用Lut直接调出电影色调 (内含下载) 本文授权自 | 极限影客FotoGeeker 文字、图片版权归原作者陆鑫东所有 为什么你的调色这么屌? 为什么你的颜色这么电影感? 咋调…

RDBMS 与 非RDBMS

RDBMS vs 非RDBMS 前言一、关系型数据库(RDBMS)1、实质2、优势 二、非关系型数据库(非RDBMS)1、介绍2、有哪些非关系型数据库3、NoSQL的演变4、小结 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!…

老司机教你怎样下载电影

摘要 老司机要开车了!dkplus专业搜集和编写实用电脑软件教程,搜集各种软件资源和计算机周边,独立制作视频和ppt和音频微信公众号,点击进入 [dkplus官方博客](http://dkplus.iteye.com) (java网络编程http://dkplus.iteye.com),微信搜索dkplus关注公众号可获取海量计算机周…

好看的冷门电影推荐

好看的冷门电影推荐 16340187 数据科学与计算机学院 学院链接 目录 好看的冷门电影推荐 水牛城66倾国之恋我恨你的十件事平常心 最后1.水牛城66 一个落魄的孩子回家,只有三个任务的人生存,一个关于亲情、爱情的故事,居然能被文森特用颠覆性的幽默讲得如此津津有味,以至于…