Python爬虫实战:使用requests库抓取视频
Python爬虫实战:使用requests库抓取视频
本文将介绍如何使用Python的requests库抓取视频,并结合实际案例讲解如何解析JSON数据,提取视频地址,并下载保存。
代码示例:
import requests
import os
import json
# 数据的抓取
base_url = 'http://www.zkk78.com/index.php/user/ajax_ulog/?ac=set&mid=1&id=4721&sid=1&nid=1&type=4'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55',
'Referer': 'http://www.zkk78.com/dongmanplay/1660-1-1.html',
'Cookie': '请替换成你自己的Cookie'
}
response = requests.get(base_url, headers=headers) # 第一次请求
print(response.status_code)
data = response.text
print(data)
# 数据解析, jsonload转换为python格式
json_data = json.loads(data)
print(json_data)
json_list = [json_data['info']] # 将字典放入列表中
print(json_list)
for item in json_list:
print(item) # 打印item字典的内容,查看键和值
if 'play_url' in item:
video_title = str(item['ulog_rid']) + '.mp4' # 将'ulog_rid'的值转换为字符串类型
video_url = item['play_url']
print(video_title, video_url)
print('正在下载:', video_title)
# 第二次请求
video_data = requests.get(video_url, headers=headers).content
with open(r'./视频/' + video_title, 'wb') as f:
f.write(video_data)
print('下载完成\n')
else:
print('没有找到play_url键')
代码解析:
- 导入必要的库:
requests用于发送HTTP请求,os用于处理文件和目录,json用于解析JSON数据。 - 设置请求头:
headers中包含了User-Agent、Referer和Cookie等信息,用于模拟浏览器访问网站,避免被反爬虫机制拦截。 - 发送请求: 使用
requests.get()方法发送GET请求,获取网页内容。 - 解析JSON数据: 使用
json.loads()方法将JSON格式的字符串转换为Python字典。 - 提取视频地址: 从字典中提取视频标题和地址,如果字典中没有'play_url'键,则打印提示信息。
- 下载视频: 发送另一个GET请求,获取视频内容,并保存到本地文件。
注意:
- 代码中的Cookie需要替换成你自己的Cookie,否则可能无法正常访问网站。
- 代码中的路径'./视频/'是保存视频的目录,可以根据需要修改。
- 本文仅供学习交流使用,请勿用于非法用途。
原文地址: https://www.cveoy.top/t/topic/fRe8 著作权归作者所有。请勿转载和采集!