Python脚本调用aria2爬取.m3u8文件中的.ts视频

直接使用request爬取视频一般都会遭遇反爬虫,
调用aria2来爬取视频亲测有效

  1. 首先得先下载aria2
  2. 下载安装完成以后打开aria2.conf,把下面的配置复制过去
#允许rpc
enable-rpc=true
#允许非外部访问
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=6800

#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=32
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=16
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=256
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0

#文件保存路径, 默认为当前启动位置
#dir="./"
#使用代理
# all-proxy=localhost:1080
#添加引用页
referer=http://images.dmzj.com/
  1. 新建bat文件打开aria2
start aria2c --conf-path=aria2.conf
pause
  1. 然后使用下面的代码就可以下载啦
import json
from urllib.request import urlopen
from pyquery import PyQuery as pq
import requests
import urllib3
import re
import os
urllib3.disable_warnings()

filepath="保存.ts文件的地址"

# 调用aria2下载视频
def download(url, filepath):
    jsonreq = json.dumps([{'jsonrpc': '2.0', 'id': 'sdfg',
                              'method': 'aria2.addUri',
                              'params': [[url],{'refer': url,'dir':filepath}],
                              }]).encode()
    c = urlopen('http://localhost:6800/jsonrpc', jsonreq)

#返回ts文件的地址
def getResourcesUrlList(mainUrl):
    mainData=requests.get(mainUrl,params={},verify=False).text
    pattern = re.compile(r'.*\.ts')
    tslist = pattern.findall(mainData)
    #具体情况具体分析,不同的网站的地址不同,注意修改
    return list(map(lambda s:mainUrl.replace("index.m3u8", s), tslist))

#.m3u8的地址
mainUrl=".m3u8的地址"
print(mainUrl)

resourcesUrlList=getResourcesUrlList(mainUrl)
print(resourcesUrlList)

for item in resourcesUrlList:
     download(item, filepath)
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值