Python爬取最爱的电影并下载到本地
小说、图片、小视频都弄了,今天就下载电影或者电视剧吧,目标网站:https://www.okzyw.com/
首先进入搜索页面:https://www.okzyw.com/index.php?m=vod-search
搜索自己喜爱的剧(比如我就喜欢西部世界^ _ ^)
进入Network查看发现是POST请求:
我把数据也截下来了,直接上代码就行:
import requests
import parsel,os
from ffmpy3 import FFmpeg
from concurrent.futures import ThreadPoolExecutor as poolheaders ={'User-Agent': 'Mozilla/5.0 (Linux; U; Android 2.2.1; zh-cn; HTC_Wildfire_A3333 Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
}wd = "西部世界第一季"
params = {'wd': wd,'submit': 'search',
}
target = 'http://www.okzyw.com'
url = 'https://www.okzyw.com/index.php?m=vod-search'html = requests.get(url,params=params,headers=headers).textres = parsel.Selector(html)
for each in res.xpath('//div[@class="xing_vb"]/ul[2]/li'):link = target + each.xpath('./span[2]/a/@href').get()print(link)
内容页拿到:
output:
http://www.okzyw.com/?m=vod-detail-id-12790.html
进入内容页后我们需要将电影标题作为文件夹,免得后面会乱:
html = requests.get(link).text
res = parsel.Selector(html)
# 获取电影标题做文件夹
title = res.xpath('//div[@class="vodh"]/h2/text()').get()# 创建文件夹
if title not in os.listdir("./"):os.mkdir(title)
里面有两种格式,我们选择m3u8格式的:
因为是静态网页,我就直接上代码了:
for each in res.xpath('//div[@id="2"]/ul/li'):# 获取集数num = each.xpath('./text()').get().split("$")[0]# 获取每一集对应的链接m3u8 = each.xpath('./input/@value').get()dic_url[m3u8] = numprint(m3u8)
顺利拿到:
接下来就是把m3u8格式的下载下来就行了,m3u8格式是由多个ts格式组成的,也是现在大多数网站都会选择的方式,也就是说,你会了这个,然后再去爬其他的也同样有用:
既然是由多个ts组成,那么如何合并呢,这里我们需要用到一个库:ffmpy3
直接pip就行
pip install ffmpy3
之后就是两行代码就能将ts合并:
from ffmpy3 import FFmpeg
FFmpeg(inputs={URL:None}, outputs={name:None).run()
不过在此之前需要下载一个文件,解压后将FFmpeg.exe放在py文件目录下,我已经放在网盘了,需要的朋友可以自行下载,这个是64位的,需要32位的可以留言:
链接:https://pan.baidu.com/s/1evGhCbEVUmVvaQkYFYWVNQ
提取码:45cv
因为每一集都有几百M,所以开8个线程:
import requests
import parsel,os
from ffmpy3 import FFmpeg
from concurrent.futures import ThreadPoolExecutor as poolheaders ={'User-Agent': 'Mozilla/5.0 (Linux; U; Android 2.2.1; zh-cn; HTC_Wildfire_A3333 Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
}
wd = input("请输入您要下载的影片名称(比如:西部世界第一季):")
# wd = "西部世界第一季"
params = {'wd': wd,'submit': 'search',
}
target = 'http://www.okzyw.com'
url = 'https://www.okzyw.com/index.php?m=vod-search'html = requests.get(url,params=params,headers=headers).textres = parsel.Selector(html)
for each in res.xpath('//div[@class="xing_vb"]/ul[2]/li'):link = target + each.xpath('./span[2]/a/@href').get()dic_url = {}html = requests.get(link).textres = parsel.Selector(html)# 获取电影标题做文件夹title = res.xpath('//div[@class="vodh"]/h2/text()').get()# 创建文件夹if title not in os.listdir("./"):os.mkdir(title)for each in res.xpath('//div[@id="2"]/ul/li'):# 获取集数num = each.xpath('./text()').get().split("$")[0]# 获取每一集对应的链接m3u8 = each.xpath('./input/@value').get()dic_url[m3u8] = numdef down_movie(k,v):print("正在下载:",end="")print(k,v)name = os.path.join(title, v +".mp4")FFmpeg(inputs={k:None}, outputs={name:'-loglevel quiet'}).run()
if __name__ == "__main__":# 开启线程池pl = pool(max_workers=8)pl.map(down_movie,dic_url.keys(),dic_url.values())pl.shutdown()
因为没有做优化,所以在输入名字的时候尽量详细点:
搞定:
可以看到,确实是在同时下载,趁这个时间可以去吃个午饭,回来应该就下载完了。
因本人文采有限,如有哪里不是很清楚的可以给我留言,我会尽量讲清楚的^ _ ^
Python爬取最爱的电影并下载到本地相关推荐
- Python爬取视频之爱情电影及解密TS文件和两种合并ts的方法
俗话说,兴趣所在,方能大展拳脚.so结合兴趣的学习才能事半功倍,更加努力专心,apparently本次任务是在视频网站爬取一些好看的小电影,地址不放(狗头保命)只记录过程. 实现功能: 从网站上爬取采 ...
- Python爬取2022春节档电影信息
Python爬取2022春节档电影信息 前提条件 相关介绍 实验环境 具体步骤 确定目标网站 分析网站 按F12打开浏览器操作台 按Ctrl+Shift+C快捷键,用鼠标找到目标元素 按Ctrl+F快 ...
- Python爬取豆瓣热映电影
Python爬取豆瓣热映电影 # encoding: utf-8import requests from lxml import etree# 1. 将目标网站上的页面抓取下来 headers = { ...
- Python爬取京东商品评论和图片下载
Python爬取京东商品评论和图片下载 代码仅供学习使用,切勿扩散并且频繁爬取网站 贴上代码和注释,方便自己下次看 import requests import time import json im ...
- [爬虫]Python爬取网易云音乐搜索并下载歌曲!
Python爬取网易云音乐搜索并下载歌曲! 文章目录 Python爬取网易云音乐搜索并下载歌曲! 1.准备工作 2."实地"观察 3.开始码代码! 4.搜索并下载 结束语 1.准备 ...
- Python爬取QQ音乐url及批量下载
QQ音乐还是有不少的好音乐,有些时候想要下载好听的音乐,如果在网页下载都是还需要登录什么的.于是,来了个QQmusic的爬虫.至少我觉得for循环爬虫,最核心的应该就是找到待爬元素所在url吧. 参考 ...
- python 24位图转 8位_Python爬取PPT模板小工具下载-Python爬取PPT模板小工具免费版下载v1.0...
由于很多PPT抓取工具都会因为版本问题无法使用,所以论坛大神就自己写了这款Python爬取PPT模板小工具,可以帮助用户轻松获取各种PPT模板,使用的时候注意一次只能下载一种类型.软件仅供交流学习,下 ...
- python爬取图片源码_半次元图片爬取-python爬取半次元图片源码下载-西西软件下载...
python爬取半次元图片源码,由大神自制的python爬取工具,本源码针对半次元图片平台,可以爬取最新的网站图片资源,支持自定义保存目录,非常方便,需要requests库的支持,想要相关源码资源的朋 ...
- 用Python爬取豆瓣首页所有电影名称、每部电影影评及生成词云
1.爬取环境: window 7 Chrome 浏览器 注册豆瓣.注册超级鹰 2.安装第三方库:安装第三方库: 主程序用到的库有 import sys, time import pytesseract ...
最新文章
- 全桥整流等效负载阻抗是多少?
- DevExpress z
- python转r字符_python r不转义变量
- The current branch is not configured for pull N...
- (7)Linux进程调度-O(1)调度算法
- 蓝桥杯 算法训练 K好数
- Linux内核开发_3_busybox
- JanusGraph图数据库系统简介
- Science| 深度解析肠道菌群与肥胖
- T - 地狱之门 (URAL - 1036 )
- android 照片拼接长图_长图拼接app下载 长图拼接制作 for Android v2.6.1 安卓版 下载-脚本之家...
- 2018中国计算机所有相关会议,2018年计算机视觉顶会和人工智能顶级会议时间表...
- JavaPoet动态生成代码,高薪程序员必会
- HTML/XML转义字符对照表
- UML-在线声称uml序列图
- Android通讯录模糊匹配搜索实现(号码 首字母 简拼 全拼)
- qt 二次开发 研华daq_研华|数据采集|DAQNavi-告别复杂编程,研华DAQNavi让您轻松实现数据采集...
- 认识大牛 深度学习“三剑客”
- 2022年天猫8月份有什么大的活动?
- 如何打开*.ASA文件!