《脚本篇01》

请注意,使用这类脚本下载版权内容可能会违反相应网站的使用协议或版权法,并且本专栏的脚本仅供学习参考且来自于互联网,因此在使用前应确保您的行为符合相关法律规定和网站政策。另外,请使用者自行承担一切后果。

该篇脚本适用于pycharm2023.3.3版本运行,解释器为python3.11。

脚本名字:爬取b站普通视频
示例如下:

import requests  # 引入requests库用于HTTP请求
import re  # 引入re库用于正则表达式操作
import json  # 引入json库用于JSON数据处理
import pprint  # 引入pprint库用于美化打印Python数据结构

# 视频URL
url = 'https://www.bilibili.com/video/BV1pu4y1q7GG'

# 设置请求头,伪装成浏览器访问,包含referer和User-Agent
headers = {
    'referer': 'https://www.bilibili.com/',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'
}

# 发送HTTP GET请求,获取网页内容
response = requests.get(url=url, headers=headers)

# 打印响应的HTML文本
print(response.text)

# 使用正则表达式从响应中提取视频标题
title = re.findall('<title data-vue-meta="true">(.*?)</title>', response.text)[0]

# 使用正则表达式从响应中提取播放信息的JSON字符串
play_info = re.findall('<script>window.__playinfo__=(.*?)</script>', response.text)[0]

# 将JSON字符串转化为Python的字典结构
json_data = json.loads(play_info)

# 从字典中提取音频的URL
audio_url = json_data['data']['dash']['audio'][0]['baseUrl']

# 从字典中提取视频的URL
video_url = json_data['data']['dash']['video'][0]['baseUrl']

# 发送HTTP GET请求,获取音频内容
audio_content = requests.get(url=audio_url, headers=headers).content

# 发送HTTP GET请求,获取视频内容
video_content = requests.get(url=video_url, headers=headers).content

# 将音频内容写入到以视频标题命名的mp3文件中
with open(title + '.mp3', mode='wb') as f:
    f.write(audio_content)

# 将视频内容写入到以视频标题命名的mp4文件中
with open(title + '.mp4', mode='wb') as f:
    f.write(video_content)

# 打印成功保存的信息
print(title, '保存成功')

运行之后你将会得到两个文件,一个是音频文件,一个是视频文件,用视频编辑软件或者ffmpeg可将其合成一个完整视频。

脚本名字:求集合中的元素个数
示例如下:
在这里插入图片描述

def data_list(w, x, y, z):
    # 创建一个空集合存储所有不同的 p/q 值
    results = set()

    # 遍历所有可能的 p 和 q 值
    for p in range(w, x + 1):
        for q in range(y, z + 1):
            if q != 0:  # 确保除数不为零
                results.add(p / q)

    # 返回集合中不同元素的数量
    return len(results)


# 输入处理
values = input("请输入四个整数 w, x, y, z(例如:1 10 1 1):")
w, x, y, z = map(int, values.split())

# 计算输出
counts = data_list(w, x, y, z)
print(counts)

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Sam yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值