四-python爬虫学习--下载电视剧
一、背景
视频下载的套路基本同图片下载一样,甚至更简单。
本文通过代码实现下载电视剧《赘婿》:https://www.okzyw.net/?m=vod-detail-id-71448.html
思路:搜索---->解析---->下载。
1.搜索
- F12检查元素,打开网络选项卡,搜索《赘婿》,可以发现向服务器POST了关键词‘赘婿’
- 继续查看搜索结果,搜索结果保存在html的赘婿更新至14集中
- 编写get_url()获取电视剧的url
import requests
from bs4 import BeautifulSoupsearch_key='赘婿'
search_url='https://www.okzyw.net/index.php'
search_params={'m':'vod-search'
}
search_headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.68','referer':'https://www.okzyw.net/','origin':'https://www.okzyw.net'
}
search_data={'wd': search_key,'submit': 'search'
}req=requests.post(url=search_url,params=search_params,headers=search_headers,data=search_data)
req.encoding='utf-8'
server='https://www.okzyw.net'
search_html=BeautifulSoup(req.text,'lxml')
search_spans=search_html.find_all('span',class_='xing_vb4')for span in search_spans:name=span.a.stringurl=server+span.a.get('href') print(name,':',url)
2.解析
- 解析搜索结果,获取每集的下载链接。
url:https://www.okzyw.net/?m=vod-detail-id-71448.html
- 可以发现有两种下载格式,我们已下载m3u8为例。
- 可以发现,下载链接都存放在
的input标签中,下面提取所有下载链接
- 代码如下:
import requests
from bs4 import BeautifulSoupurl = 'https://www.okzyw.net/?m=vod-detail-id-71448.html'
req = requests.get(url)
bs = BeautifulSoup(req.text, 'lxml')
bs_div = bs.find('div', id="2")
bs_inputs = bs_div.find_all('input')
num = 1
for each in bs_inputs:if 'm3u8' in each.get('value'):url = each.get('value')print(num, ':', url)num += 1
3.下载
打开网络抓包,容易发现视频都是以ts分段视频传输的,python中的ffmpy3,及python中的FFmpeg可以处理,该模块的功能包括视频采集、视频格式转换、视频抓图、给视频加水印等。FFmpeg相关教程url
import requests
from bs4 import BeautifulSoup
import os
import ffmpy3
from multiprocessing.dummy import Pool as ThreadPoolsearch_key='赘婿'
search_url='https://www.okzyw.net/index.php'search_params={'m':'vod-search'
}
search_headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.68','referer':'https://www.okzyw.net/','origin':'https://www.okzyw.net'
}
search_data={'wd': search_key,'submit': 'search'
}req=requests.post(url=search_url,params=search_params,headers=search_headers,data=search_data)
req.encoding='utf-8'
server='https://www.okzyw.net'
search_html=BeautifulSoup(req.text,'lxml')
search_spans=search_html.find_all('span',class_='xing_vb4')for span in search_spans:name=span.a.stringtv_url=server+span.a.get('href')print(name)print(tv_url)video_dir=nameif video_dir not in os.listdir(r'D:\ProgramData\Python'):os.mkdir(name)#获取每集电视的下载地址req = requests.get(tv_url)bs = BeautifulSoup(req.text, 'lxml')bs_div = bs.find('div', id="2")bs_inputs = bs_div.find_all('input')num = 1search_res={}for each in bs_inputs:if 'm3u8' in each.get('value'):ep_url = each.get('value')if ep_url not in search_res.keys():search_res[ep_url]=numprint(num, ':', ep_url)num += 1#开始下载def download_video(ep_url):num=search_res[ep_url]name=os.path.join(video_dir,'第{0}集.mp4'.format(num))ffmpy3.FFmpeg(inputs={ep_url: None}, outputs={name:None}).run()# 开10个线程池pool = ThreadPool(10)results = pool.map(download_video, search_res.keys())pool.close()pool.join()
四-python爬虫学习--下载电视剧相关推荐
- python爬虫学习之电视剧弹幕的抓取
近期<你是我的荣耀>这部剧正在热播中,在首播当天收视率就上亿了,足以见得观众们对这部剧的一个期待程度.在连放了八集之后,这部剧目前也是好评满满,不少人都被杨洋和迪丽热巴的颜值所吸引了.小编 ...
- Python爬虫学习手册
like:128-Python 爬取落网音乐 like:127-[图文详解]python爬虫实战--5分钟做个图片自动下载器 like:97-用Python写一个简单的微博爬虫 like:87-爬虫抓 ...
- python爬虫学习 - 查看显卡价格
python爬虫学习 - 查看显卡价格 这是一个简单的爬虫项目,用于从中关村网站上爬取显卡报价数据,后续可以考虑爬取相关的参数信息让数据更立体.数据的保存使用的是json,以python为主要开发语言 ...
- Python爬虫学习系列教程
大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫 ...
- Python爬虫学习系列教程-----------爬虫系列 你值的收藏
静觅 » Python爬虫学习系列教程:http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把 ...
- Python 爬虫学习 系列教程
Python爬虫 --- 中高级爬虫学习路线 :https://www.cnblogs.com/Eeyhan/p/14148832.html 看不清图时,可以把图片保存到本地在打开查看... Pyth ...
- 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 铁憨憨的Python 爬虫学习 Python_Learn
通过网课和万能的B站学习 Python 和爬虫(本文基本是对视频内程序和内容的笔记内容) B站 Python 爬虫学习链接 Python 学习网络爬虫主要分3个大的版块:明确目标,抓取,分析,存储 明 ...
- Python爬虫学习笔记 -- 爬取糗事百科
Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...
最新文章
- 使用ASP.NET MVC 2编程时遇到的两个小问题
- 汉语分词工具的研发-----
- android之修改CheckBox左侧图标样式
- iBiology |除了B站,这还有个专业的生科科普网站
- iPhone 13 Pro“终极”渲染图曝光:后置镜头模组将有大幅升级
- 130. 被围绕的区域
- 拓端tecdat|R语言ARIMA集成模型预测时间序列分析
- 德语翻译器在线翻译中文-德语翻译器支持各大语言翻译
- c++ 二次开发 良田高拍仪_高拍仪进行二次开发要求
- 关于快速幂与快速积取模实现的尝试
- Python初级入门精讲-王大鹏-专题视频课程
- 区块链技术与应用-----区块链概念
- Chrome浏览器手动调节模拟网速
- python之路--生成器
- 不同坐标系下角速度_轨道、重力场与坐标系的混乱关系
- 智云通CRM:CRM数据库在经营客户中有什么作用?
- 从libc-2.27.so[7ff3735fd000+1e7000]崩溃回溯程序段错误segfault
- 如何改变讨好型人格?
- java异常重要吗_Java 异常处理的重要认识
- vue 导出excel文件 利用 excelJs插件