爬虫基本思路流程和代码实现步骤总结之爬取视频

爬虫基本思路流程和代码实现步骤总结

数据来源分析:

确定要获取的数据,例如B站视频的标题和URL。
使用开发者工具进行抓包分析,找出可以获取到所需数据的包。
在这里插入图片描述

代码实现步骤:
发送请求:使用requests库向指定URL发送请求。
获取数据:获取服务器返回的响应数据。
解析数据:使用正则表达式或其他解析方法提取所需的数据信息。
保存数据:将解析到的数据保存到本地文件中。
具体实现步骤如下:

导入必要的库:

requests:用于发送HTTP请求并获取响应数据。
pprint:用于格式化输出数据。
json:用于处理JSON数据。
re:用于使用正则表达式匹配和提取数据。
发送请求:

url = "https://www.bilibili.com/video/BV1EY4y1q7Tg"

使用requests库的get方法向指定的视频详情页URL发送请求。
设置请求头headers,包括User-Agent和Referer字段进行伪装。
获取数据:

#headers伪装最简单的种反反爬手段对于某些网站你不加headers可能得不到数据,或者返回的数据不是你想要内容
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
    "Referer": "https://www.bilibili.com/video/BV1jM4y1t7Ha/?spm_id_from=333.337.search-card.all.click"
}

使用response.text属性获取服务器返回的响应数据。
解析数据:

#通过requests模块里面get请求方法对于urL地址发送请求,并且携带上headers请求头进行伪装,最后用response自 定义变量接收返回数据
response = requests.get(url=url,headers=headers)
# 2.获取数据,获取服务器返回响应数据
#print(response.text)

使用正则表达式(re.findall)提取视频标题和playinfo数据。
使用json.loads将playinfo数据解析为Python字典。
提取字典中的音频URL和视频URL。
保存数据:

# 3.解析数据,提取我们想要视频数据信息(标题视频urL地址)
title = re.findall('<title data-vue-meta="true">(.*?)_哔哩哔哩_bilibili</title>',response.text)[0]
playinfo = re.findall('<script>window.__playinfo__=(.*?)</script>',response.text)[0]
# 正则表达式匹配出来的数据是列表用[0]索引取0取出列表里面的内容字符
#pprint.pprint(type(playinfo))#type查看数据类型
#print(playinfo)
json_data = json.loads(playinfo)
#print(json_dada)
#print(type(json_dada))
#pprint.pprint(json_data)
#字典取值>>>通过关键字提取值冒 号左边内容提取冒号右边内容
audio_url = json_data['data']['dash']['audio'][0]['baseUrl']
video_url = json_data['data']['dash']['video'][0]['baseUrl']
print(audio_url);

使用requests库的get方法获取音频和视频的二进制数据。
利用open函数将二进制数据写入到本地文件中。
根据视频标题命名文件。
输出保存成功信息。
4.保存数据403 Forbidden 你没有访问权限(遇到403 大多数情况加referer防盗链就可以了)
audio_conten = requests.get(url=audio_url,headers=headers).content#获取音频二进制数据
video_conten = requests.get(url=video_url,headers=headers).content#获取视频二进制数据

with open(title + ‘mp3’,mode=‘wb’)as f:
f.write(audio_conten)
with open(title + ‘mp4’, mode=‘wb’) as f:
f.write(video_conten)
print(title,'保存成功 ')
实现其他功能:

可以根据需要扩展爬虫,采集多个视频或根据关键字搜索视频。
总结:以上是爬虫的基本思路流程和代码实现步骤。通过发送HTTP请求,获取服务器返回的数据,并使用解析方法提取所需的数据信息,最后将数据保存到本地文件中。可以根据具体需求扩展功能和改进代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值