还是老生常谈的操作

import requests

import os

from bs4 import BeautifulSoup

from urllib.parse import urljoin

html = requests.get('http://www.332dy.com/pu/37192-0-0.html')

soup = BeautifulSoup(html.text,'lxml')

lists = soup.select('.stui-content__playlist.sort-list.column8.clearfix li a')

for list in lists:

print(list['href'])

返回

/pu/37192-0-0.html

/pu/37192-0-1.html

/pu/37192-0-2.html

/pu/37192-0-3.html

/pu/37192-0-4.html

/pu/37192-0-5.html

/pu/37192-1-0.html

/pu/37192-1-1.html

/pu/37192-1-2.html

/pu/37192-1-3.html

/pu/37192-1-4.html

/pu/37192-1-5.html

拼接一下

import requests

import os

from bs4 import BeautifulSoup

from urllib.parse import urljoin

base_url = 'http://www.332dy.com/'

html = requests.get('http://www.332dy.com/pu/37192-0-0.html')

soup = BeautifulSoup(html.text,'lxml')

lists = soup.select('.stui-content__playlist.sort-list.column8.clearfix li a')

for list in lists:

innerurl = urljoin(base_url,list['href'])

print(innerurl)

然后我们就要下载这个视频,来抓下包

可以看到是个ts流,这个就是分段下载,一般ts流都有个m3u8

可以看到这个sign是从一个script脚本里面取的,把鼠标移到上面可以看到share我们去源代码全局搜索下share

访问https://shuixian.nihaozuida.com/share/7f53f8c6c730af6aeb52e66eb74d8507可以看到是视频这个应该是

3u8文件,我们就取出var now=使用正则表达式因为script一般不在我们语法里面

re_m3u8 = re.compile('now="(.*?)"',re.I|re.S)

html2 = requests.get(innerurl)

m3u8Result = re_m3u8.findall(html2.text)[0]

print(m3u8Result)

成功获取到了,但是返回的为列表是4集我们获取第一个,所以加上[0]

我们访问一下抓包,可以看到访问了这个文件然后main里面我们访问就是下载的m3u8文件

同样正则获取一下里面的值

re_main = re.compile('main = "(.*?)"',re.I|re.S)

html3 = requests.get(m3u8Result)

mainResult = re_main.findall(html3.text)[0]

print(mainResult)

同样取出要拼接

baseurl = 'https://shuixian.nihaozuida.com/'

resultUrl = urljoin(baseurl,mainResult)

print(resultUrl)

然后我们把这个m3u8文件保存一下

if not os.path.exists('影视'):

os.mkdir('影视')

with open('影视/m3u81.txt','w',encoding='utf-8')as f:

f.write(requests.get(resultUrl).text)

print('m3u8存储完毕')

然后再读取出来

with open('影视/m3u81.txt', 'r', encoding='utf-8')as f:

lines = f.readlines()

for line in lines:

if line.startswith('#'):

continue

print(line)

输出

1024k/hls/index.m3u8

再拼接起来

现在获取到的就是里面很多ts流,同样保存起来

with open('影视/m3u82.txt', 'w', encoding='utf-8')as f:

f.write(requests.get(url).text)

print('m3u8存储完毕')

with open('影视/m3u82.txt', 'r', encoding='utf-8')as f:

lines = f.readlines()

for line in lines:

if line.startswith('#'):

continue

print(line)

输出

base = 'https://shuixian.nihaozuida.com/20200313/1391_06cf517b/1024k/hls/'

url = urljoin(base,line.strip().replace('\n',''))

print(url)

然后就是下载这些ts流,最终代码为

import requests

import os

import re

from bs4 import BeautifulSoup

from urllib.parse import urljoin

re_m3u8 = re.compile('now="(.*?)"',re.I|re.S)

re_main = re.compile('main = "(.*?)"',re.I|re.S)

html = requests.get('http://www.332dy.com/dili/37192.html')

soup = BeautifulSoup(html.text,'lxml')

lis = soup.select('ul.stui-content__playlist.sort-list.column8.clearfix li a')

base = 'http://www.332dy.com/'

for li in lis:

innerUrl = urljoin(base,li['href'])

# print(innerUrl)

html2 = requests.get(innerUrl)

m3u8Result = re_m3u8.findall(html2.text)

# print(m3u8Result)

if m3u8Result==[]:

base = 'http://www.332dy.com'

innerUrl = urljoin(base, li['href'])

html2 = requests.get(innerUrl)

m3u8Result = re_m3u8.findall(html2.text)

html3 = requests.get(m3u8Result[0])

mainResult = re_main.findall(html3.text)[0]

baseurl = 'https://shuixian.nihaozuida.com/'

resultUrl = urljoin(baseurl,mainResult)

if not os.path.exists('影视'):

os.mkdir('影视')

with open('影视/m3u81.txt','w',encoding='utf-8')as f:

f.write(requests.get(resultUrl).text)

print('m3u8存储完毕')

with open('影视/m3u81.txt', 'r', encoding='utf-8')as f:

lines = f.readlines()

for line in lines:

if line.startswith('#'):

continue

# print(line)

#https://shuixian.nihaozuida.com/20200313/1391_06cf517b/1024k/hls/index.m3u8

#1024k/hls/index.m3u8

basem3u8 = 'https://shuixian.nihaozuida.com/20200313/1391_06cf517b/'

url = urljoin(basem3u8,line)

break

with open('影视/m3u82.txt', 'w', encoding='utf-8')as f:

f.write(requests.get(url).text)

print('m3u8存储完毕')

with open('影视/m3u82.txt', 'r', encoding='utf-8')as f:

lines = f.readlines()

for line in lines:

if line.startswith('#'):

continue

# print(line)

base = 'https://shuixian.nihaozuida.com/20200313/1391_06cf517b/1024k/hls/'

ts_url = urljoin(base,line.strip().replace('\n',''))

# print(url)

with open('影视/1.mp4','ab')as f:

f.write(requests.get(ts_url).content)

效果

![](https://img2020.cnblogs.com/blog/2147685/202009/2147685-20200914184217106-1362327025.png)

python获取精彩视频_python获取莫视频网站视频相关推荐

  1. python 录制web视频_Python django框架 web端视频加密的实例详解

    视频加密流程图: 后端获取保利威的视频播放授权token,提供接口api给前端 参考文档:http://dev.polyv.net/2019/videoproduct/v-api/v-api-play ...

  2. python调用摄像头录制视频_Python OpenCV使用摄像头捕获视频

    我们知道,OpenCV是一款强大的跨平台的计算机视觉库,使用它能完成我们对于图像和视频处理的很多功能,今天,我们使用OpenCV来捕获计算机摄像头的视频. 使用OpenCV捕获摄像头视频 我们知道,视 ...

  3. python使用视频_Python中操作各种多媒体,视频、音频到图片的代码详解

    我们经常会遇到一些对于多媒体文件修改的操作,像是对视频文件的操作:视频剪辑.字幕编辑.分离音频.视频音频混流等.又比如对音频文件的操作:音频剪辑,音频格式转换.再比如我们最常用的图片文件,格式转换.各 ...

  4. python b站 排行_Python 爬取B站 视频热度排行数据

    时间:2019-03-07 概述:抓取数据 爬虫 采集 Python 爬取bilibili站 视频热度排行视频数据,有文件为 bilibili.py,只需输入一个大模块名,如游戏模块名为'game', ...

  5. python获取当前年月日_Python获取、格式化当前时间日期的方法

    Python获取当前时间_获取格式化时间: Python获取当前时间: 使用 time.time( ) 获取到距离1970年1月1日的秒数(浮点数),然后传递给 localtime 获取当前时间 #使 ...

  6. python处理行情数据_Python获取股票历史、实时数据与更新到数据库

    要做量化投资,数据是基础,正所谓"巧妇难为无米之炊" 在免费数据方面,各大网站的财经板块其实已提供相应的api,如新浪.雅虎.搜狐...可以通过urlopen相应格式的网址获取数据 ...

  7. python提取矩阵元素_python获取array中指定元素的示例

    python获取array中指定元素的示例 对于array,如2-D的array,如何取指定元素 设array为3*10的shape s = array([[ 0, 1, 2, 3, 4, 5, 6, ...

  8. python抓取视频_python实现超简单的视频对象提取功能

    视频对象提取 与其说是视频对象提取,不如说是视频颜色提取,因为其本质还是使用了OpenCV的HSV颜色物体检测.下面话不多说了,来一起看看详细的介绍吧. HSV介绍 HSV分别代表,色调(H:hue) ...

  9. python高德 查询县_Python获取高德地图省市区县列表

    项目中需要用省市区来进行检索,原想高德地图肯定会有API来获得这些数据,结果没有找到,有一个接口好像可以用,但是会附带大量的边界坐标点. 所以就不如自己把高德的省市区列表扒下来,自己写接口来完成这个功 ...

  10. 网站服务器存放视频原文件在哪里,网站视频存放服务器

    网站视频存放服务器 内容精选 换一换 简要介绍Web Bench是Linux中被广泛使用的网站压力测试工具,同时支持HTTPS静态网站和动态网站.编写语言:C/C++一句话概述:网站压力测试工具建议的 ...

最新文章

  1. 博客迁移至http://www.vlix.org/
  2. IP地址不够了,有办法吗?
  3. “接着奏乐接着舞”,大脑也是这么想的
  4. 河北单招计算机英语,2019年河北高职单招英语联考试题
  5. 机器学习(三)——预备知识(学习率与激活函数)
  6. python接口测试之requests详解_Python接口测试-requests库
  7. uni.request POST 请求后台接收不到参数
  8. 我的世界服务器物品管理,JEI物品管理器 _ 我的世界Minecraft中国版官方网站——你想玩的,这里都有...
  9. Win10系统禁用驱动程序强制签名
  10. 买服务器做网站 镜像选什么,云服务器做网站镜像类型选啥
  11. A/D转换器主要性能参数
  12. 最小二乘法用计算机求经验回归方程,最小二乘法求线性回归方程.doc
  13. 管家婆应用程序没有响应_电脑上应用程序很容易未响应,怎么处理?
  14. win10系统的安装
  15. PMP-12项目采购管理
  16. VOB视频格式转换器怎么把vob转换为mp3
  17. 一个10年IT技术人的历程-Java架构师的演变
  18. 南非世界杯-我在南非(二)
  19. element-联动下拉框
  20. 开源动物园一日游!技术圈的这些“飞禽走兽”你认识多少?

热门文章

  1. day23:shell基础介绍 alias及重定向
  2. Oracle表空间管理
  3. openstack网络服务neutron
  4. 【Python学习笔记】输入raw_input(),特殊情况下也可以用input()
  5. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem G. k-palindrome dp
  6. HTTP协议是无状态协议,怎么理解?
  7. eclipse从svn检出项目
  8. python虚拟环境
  9. leetcode004 Median_of_Two_Sorted_Arrays.py
  10. php rule engine,jinchunguang