python爬取并下载VIP电影

本代码演示通过python的requests库下载战狼2电影

在python3,pycharm里编写的代码如下:

#1、导入相应库
import multiprocessing
import requests
import random
import os
#2、对网站进行解析
def downvideo():
url1="https://www.iqiyi.com/v_19rre19on4.html" #爱奇艺的战狼2电影的网址
'''因为是vip电影,无法直接通过爱奇艺进行解析电影的网址,故通过第三方解析vip电影的网站
https://www.bavei.com进行解析,解析的视频是很多个短视频,短视频的网址例如
https://v2.yongjiujiexi.com/20171103/d6UOXTp4/1000kb/hls/8g9e8176000.ts
https://v2.yongjiujiexi.com/20171103/d6UOXTp4/1000kb/hls/8g9e8176001.ts
https://v2.yongjiujiexi.com/20171103/d6UOXTp4/1000kb/hls/8g9e8176002.ts等等,故对上述网址进行解析 '''
agent1 = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36"} # 设定请求头的值agent1
agent2 = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"} # 设定请求头的值agent2
agent3 = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36"} # 设定请求头的值agent3
list1 = [agent1, agent2, agent3] # 设置3个请求头组成的列表,并赋值给列表list1
agent = random.choice(list1) # 请求头的值agent从列表list1里随机选择一个
for x in range(200): #假设有200个ts视频片段
url="https://v2.yongjiujiexi.com/20171103/d6UOXTp4/1000kb/hls/8g9e817600"+str(x)+".ts" #设置带爬取网址url=原固定地址+for循环的变量+视频格式.ts
try:
response=requests.get(url,headers=agent) #设置请求头为agent,请求网址为url,进行get请求,并将请求结果赋值给response

response.encoding=response.apparent_encoding #根据网页内容进行解析,并将解析编码赋值给response.encoding
html=response.content #将网页的二进制内容赋值给html
path="F://movie//" #设置本机保存视频的文件夹路径
if not os.path.exists(path): #假如不存在path这个路径时
os.mkdir(path) #则新建这个路径
abspath=path+str(x)+".ts" #设置保存到本机的文件的绝对路径
with open(abspath,"wb") as f: #对文件的绝对路径进行写入操作,并设置为f
f.write(html) #对f写入网页的二进制内容
f.close() #关闭f文件
print("{}下载完成".format(url)) #打印这个网址下载完成
except: #当接收错误时
print("爬取失败") #打印爬取失败
continue #并继续执行
#3、调用函数
if __name__ == '__main__':
downvideo() #调用下载视频的函数donwvideo

pycharm里的代码运行结果如下图所示:

python爬取并下载VIP电影

保存到本机的图片如下所示:

python爬取并下载VIP电影


分享到:


相關文章: