一、环境准备
我这里使用的是环境如下仅供参考: 开发工具: pycharm python环境:python-3.8.0 依赖的包: shutil,os,re,json,choice,requests,lxml
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤
QQ群:828010317
二、页面分析
我在这里就拿前段时间非常火的马老师的视频来举例子吧。 视频链接: www.bilibili.com/video/BV1Ef…
- 视频链接解析 我们这里只需要 BV1Ef4y1i78b 也就是
video后面? 号前面
- 第二部分抓包,哔哩哔哩这里的视频被分成多个小段了经过看源码分析后我们可以解析
</script><script>
中的内容返回一个json串解析获取我们想要的数据即可。. - 分析返回json中的具体内容
返回给我们的们如下,真正对我们有用的信息在data中 在data 下面我们就可以清晰的看到我们想要的内容了,如视频的画质,以及视频的地址等,注意:如果你拿到地址直接进行访问的话是访问不到了,哔哩哔哩中添加了
Referer
如果你直接在浏览器访问是没有Referer的是找不到页面的。 我们需要解析的内容如下:
- 视频的时长
- 视频的质量
- 视频的URL
- 音频的URL
- 音频和视频合并
三、代码实操
3.1 准备工作
依赖的包
import json
import os
import re
import shutil
import ssl
import time
import requests
from concurrent.futures import ThreadPoolExecutor
from random import choice
from lxml import etree
复制代码
添加请求头和随机用户代理
#设置请求头等参数,防止被反爬
headers = {
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.5',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36'
}
def get_user_agent():
'''获取随机用户代理'''