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

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

一、开始

1.找到url,请求url

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

正常的三步:

1.url

2.requests请求

3.UA伪装

import requests


if __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 etree

if __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).content
    audio_content = requests.get(audio_url,head).content
    with 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. 遵守法律和规定: 不同国家和地区对网络爬虫有不同的法律规定和限制,特别是涉及数据隐私和网络安全方面的法律。使用爬虫时务必遵守当地的法律法规。

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

  • 13
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值