您的位置:首页 > 健康 > 美食 > Python爬虫掌握-----4实战(爬取视频)

Python爬虫掌握-----4实战(爬取视频)

2024/10/5 19:20:51 来源:https://blog.csdn.net/2401_84670644/article/details/140617721  浏览:    关键词:Python爬虫掌握-----4实战(爬取视频)

我们使用爬虫时难免会遇到爬取视频的情况,其实爬取图片视频,内容都是一样的。这里以b站视频为例。

一、开始

1.找到url,请求url

防盗链,需要写在UA伪装中

正常的三步:

1.url

2.requests请求

3.UA伪装

import requestsif __name__ == '__main__':head = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
,"Referer":"https://www.bilibili.com/"}url = "https://www.bilibili.com/video/BV17H4y1A7md/?t=9&spm_id_from=333.1007.tianma.2-1-4.click&vd_source=37cc0b6d243b986a7d9f55081d429fcb"requests.get(url,headers=head)pass

2.找到所需数据地址,获取它。

b站的视频有点特殊,视频和声频是分开的,我们需要分别爬取,我们通过正常的爬取是无法爬取到b站视频的直接通过视频地址是爬取不到的。所以我们需要分别找到视频和音频的地址。

在head里找到这个window__playinfo__获取它,从中提取视频和音频的url请求获取即可:保存到文件中

import requests
import json
from lxml import etreeif __name__ == '__main__':head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0", "Referer": "https://www.bilibili.com/"}url = "https://www.bilibili.com/video/BV17H4y1A7md/?t=9&spm_id_from=333.1007.tianma.2-1-4.click&vd_source=37cc0b6d243b986a7d9f55081d429fcb"response = requests.get(url, headers=head)res_text = response.text# 数据解析tree = etree.HTML(res_text)# 去掉开头的window.__playinfo__=base_info = "".join(tree.xpath("/html/head/script[4]/text()"))[20:]info_dict = json.loads(base_info)print(base_info)video_url = info_dict["data"]["dash"]['video'][0]["baseUrl"]audio_url = info_dict["data"]["dash"]['audio'][0]["baseUrl"]video_content = requests.get(video_url,head).contentaudio_content = requests.get(audio_url,head).contentwith open("video.mp4","wb") as f:f.write(video_content)with open("audio.mp4", "wb") as fp:fp.write(audio_content)pass

视频的爬取实际上不难,只是在不停的寻找所需的地址,请求并储存。

牢记爬虫注意事项:

  1. 遵守网站的robots.txt文件: robots.txt 是网站所有者用来控制搜索引擎爬取其网站内容的标准。爬虫在开始抓取网页之前应该检查 robots.txt 文件,并遵守其中规定的限制和指示。尊重robots.txt 是一种网络礼节,也有助于避免法律纠纷和封禁。

  2. 不过度请求网站: 爬虫应该尽量模拟人类访问行为,避免过于频繁或过度的请求。频繁地请求同一个页面或者短时间内大量请求会给服务器造成负担,并可能被视为恶意行为。

  3. 尊重隐私和版权: 爬取的内容可能包含用户数据和受版权保护的内容。在爬取和使用这些数据时,必须遵循隐私保护法律和版权法规。特别是在商业用途中,可能需要得到网站所有者的许可。

  4. 避免爬取敏感信息: 不应该爬取包含个人身份信息或其他敏感数据的页面,除非有明确的法律依据和用户许可。

  5. 设置合理的爬取速率和间隔: 设置适当的爬取速率和请求间隔,以避免给目标网站的服务器带来过大的负载。通常建议使用随机化间隔和分布,以模仿真实用户的访问模式。

  6. 处理错误和异常情况: 爬虫应该能够处理网站返回的错误码和其他异常情况,例如重定向、服务器错误等。合理的错误处理可以提高爬虫的效率和稳定性。

  7. 遵守法律和规定: 不同国家和地区对网络爬虫有不同的法律规定和限制,特别是涉及数据隐私和网络安全方面的法律。使用爬虫时务必遵守当地的法律法规。

网络爬虫是一种强大的工具,但在使用时需要谨慎行事,遵循良好的道德和法律标准,以避免对网络生态系统和个人权利造成损害。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com