python 爬虫 入门 五、抓取图片、视频

目录

一、图片、音频

二、下载视频:


一、图片、音频

        抓取图片的手法在上一篇python 爬虫 入门 四、线程,进程,协程-CSDN博客里面其实有,就是文章中的图片部分,在那一篇文章,初始代码的28,29行,请求了图片。

img_response = requests.get(img_url) # 下载图片

img_stream = BytesIO(img_response.content)

        可以看出仅仅是将 之前获取文本、源代码的.text换为了.content。如果要保存,我们可以使用:

    with open("xxx.jpg", mode="wb") as f:  # jpeg/jpg/png/换请求到的格式f.write(resp.content)

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

        这就不赘述了,抓取音频也很像,这里拿Welcome to the Free Music Archive - Free Music Archive网站做个例子,虽然能直接按钮下载,但咱只学技术。

        打个比方,想下载这个网站的歌曲 但是下载要登录(我没登陆过,不确定登陆后能不能免费下),这个时候就该打开控制台了开始抓包了。通常来说,这种视频、音频的链接都不会开局就加载,而是会在你点击播放时,再向网页请求。

         如果你在网页直接输入这段长长的网址,就能当场播放这段音频,既然如此,我们直接用以下代码就能尝试下载(英语不好,听不懂在说啥。)https://files.freemusicarchive.org/storage-freemusicarchive-org/tracks/3VXD9eyhsZAUy5jjUWLgj3VGXR8ap7x54B6J6Paf.mp3

import requestsurl = "https://files.freemusicarchive.org/storage-freemusicarchive-org/tracks/3VXD9eyhsZAUy5jjUWLgj3VGXR8ap7x54B6J6Paf.mp3"
headers = {# 用户代理,某些网站验证用户代理,微微改一下,如果提示要验证码之类的,使用它"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome""/118.0.0.0 Safari/537.36",
}with requests.get(url=url, headers=headers,) as resp:resp.encoding = "utf-8"  # 当页面乱码改这里print(resp)with open("xxx.mp3", mode="wb") as f:  # 下载源码f.write(resp.content)

二、下载视频:

         下载视频的过程与图片和音频大不一样,较短的视频可以使用和上面相同的方法,但是长视频和视频播放网站用的时其他方法,比如https://www.pexels.com/zh-cn/video/3192166/这个网页中的视频就能用上述方法直接拿下,甚至给的就是下载链接。

        因为一段视频可能有几个G大小,用户又可能会拖动进度条。所以,视频通常会被“切片”,一般来说会1~2秒切做一片,通常最大不会超过20s。每个切片都是一个.ts文件,这些文件通过.m3u8文件组合起来,便是我们平常见的视频了。下面拿西游记做个演示:(其他网站差不多)《西游记86版》电视剧第1集完整版在线播放-星辰影院

基本上大部分网站视频都加密,不过问题不大,就是多一步解密而已 ,因此获取视频的步骤就是:

获取m3u8
根据m3u8获取所有ts
解密
组合所有ts,获得mp4

        开工之前,还有一件事,在目录建一个文件夹,并排除他,以作为ts临时目录,被排除的文件夹里面内容的更新不会引起PyCharm的更新。

 正式开工,编写代码:

import asyncio
import osimport aiofiles
import aiohttp
import requests
from Crypto.Cipher import AES  # 解密
from tqdm.asyncio import tqdm_asynciodef get_m3u8(url, headers):  # 获取m3u8中的所有ts链接m3u8_url = url + '/index.m3u8'with requests.get(url=m3u8_url, headers=headers, ) as resp:resp.encoding = "utf-8"  # 当页面乱码改这里m3u8_text = resp.textm3u8_text = m3u8_text.split("\n")  # 以回车分割m3u8_data = []for i in m3u8_text:  # 遍历m3u8,只找非#开头的ts链接,存到m3u8中if not (i.startswith('#') or i == ''):m3u8_data.append(i)return m3u8_datadef get_key(url, headers):  # 获取密钥key_url = url + '/enc.key'with requests.get(url=key_url, headers=headers, ) as resp:resp.encoding = "utf-8"  # 当页面乱码改这里key = resp.textreturn key.encode('utf-8')async def get_ts(url, name, headers, save_path, aes, ts_ok, num):async with aiohttp.ClientSession() as session:async with session.get(url=url, headers=headers)as resp:async with aiofiles.open(save_path + '/' + name, mode='wb')as f:await f.write(aes.decrypt(await resp.content.read()))  # 下载ts(顺道解密)ts_ok[num] = Trueasync def get_all_ts(urls, names, headers, path, ts_ok, key):  # 协程下载所有tsaes = AES.new(key=key, IV=b'0000000000000000', mode=AES.MODE_CBC)tasks = []for i in range(len(urls)):if not ts_ok[i]:  # 这个没下载呢,添加任务tasks.append(asyncio.create_task(get_ts(urls[i], names[i], headers, path, aes, ts_ok, i)))for done in tqdm_asyncio.as_completed(tasks):  # 带进度条的显示任务await donedef merge_ts(mp4_path, ts_path):  # 组合所有ts为mp4path = ts_path + '\\*.ts'# os.system(f"cat {path} > {mp4_path}")  # mac使用,其他操作系统查找别的合成ts文件方法os.system(f"copy /b {path} {mp4_path}")  # windows使用,其他操作系统查找别的合成ts文件方法# 该方法需求保存时,名字按字母排序if __name__ == "__main__":# 获取m3u8===================================================data_url = "https://hn.bfvvs.com/play/yb8lN7Wb"headers = {# 用户代理,某些网站验证用户代理,微微改一下,如果提示要验证码之类的,使用它"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome""/118.0.0.0 Safari/537.36",}save_path = "C:\\Users\\86135\\PycharmProjects\\pythonProject\\测试\\test"mp4_path = "video.mp4"m3u8 = get_m3u8(data_url, headers)# sava_names = [url_str.rsplit("/", 1)[-1] for url_str in m3u8]  # 获取按/从最右边分割一次后右边的字符串做文件名]sava_names = [f'{i:05d}.ts' for i in range(len(m3u8))]  # 为了合并,保存为00001~00265,以保证字母顺序不变enc_key = get_key(data_url, headers)all_ts_ok = [False] * len(m3u8)loop = asyncio.get_event_loop()loop.run_until_complete(get_all_ts(m3u8, sava_names, headers, save_path, all_ts_ok, enc_key))print(sum(all_ts_ok) / len(all_ts_ok))merge_ts(mp4_path, save_path)

 运行结果,不到半分钟,一段400+MB的视频就下来了。

100%|██████████| 266/266 [00:18<00:00, 14.67it/s]
1.0
C:\Users\86135\PycharmProjects\pythonProject\����\test\00000.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00001.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00002.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00003.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00004.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00005.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00006.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00007.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00008.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00009.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00010.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00011.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00012.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00013.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00014.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00015.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00016.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00017.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00018.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00019.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00020.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00021.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00022.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00023.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00024.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00025.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00026.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00027.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00028.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00029.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00030.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00031.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00032.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00033.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00034.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00035.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00036.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00037.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00038.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00039.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00040.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00041.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00042.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00043.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00044.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00045.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00046.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00047.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00048.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00049.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00050.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00051.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00052.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00053.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00054.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00055.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00056.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00057.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00058.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00059.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00060.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00061.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00062.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00063.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00064.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00065.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00066.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00067.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00068.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00069.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00070.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00071.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00072.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00073.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00074.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00075.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00076.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00077.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00078.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00079.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00080.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00081.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00082.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00083.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00084.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00085.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00086.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00087.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00088.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00089.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00090.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00091.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00092.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00093.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00094.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00095.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00096.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00097.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00098.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00099.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00100.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00101.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00102.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00103.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00104.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00105.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00106.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00107.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00108.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00109.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00110.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00111.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00112.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00113.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00114.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00115.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00116.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00117.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00118.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00119.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00120.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00121.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00122.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00123.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00124.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00125.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00126.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00127.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00128.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00129.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00130.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00131.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00132.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00133.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00134.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00135.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00136.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00137.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00138.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00139.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00140.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00141.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00142.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00143.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00144.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00145.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00146.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00147.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00148.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00149.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00150.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00151.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00152.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00153.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00154.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00155.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00156.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00157.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00158.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00159.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00160.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00161.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00162.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00163.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00164.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00165.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00166.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00167.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00168.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00169.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00170.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00171.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00172.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00173.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00174.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00175.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00176.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00177.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00178.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00179.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00180.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00181.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00182.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00183.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00184.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00185.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00186.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00187.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00188.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00189.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00190.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00191.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00192.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00193.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00194.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00195.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00196.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00197.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00198.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00199.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00200.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00201.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00202.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00203.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00204.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00205.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00206.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00207.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00208.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00209.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00210.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00211.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00212.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00213.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00214.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00215.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00216.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00217.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00218.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00219.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00220.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00221.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00222.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00223.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00224.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00225.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00226.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00227.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00228.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00229.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00230.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00231.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00232.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00233.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00234.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00235.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00236.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00237.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00238.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00239.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00240.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00241.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00242.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00243.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00244.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00245.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00246.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00247.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00248.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00249.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00250.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00251.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00252.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00253.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00254.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00255.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00256.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00257.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00258.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00259.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00260.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00261.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00262.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00263.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00264.ts
C:\Users\86135\PycharmProjects\pythonProject\����\test\00265.ts
�Ѹ���         1 ���ļ���

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/58309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

保姆级教程 | 全流程免费:合并多份长宽不同的PDF成相同大小并进行瘦身

背景 由于老板需要&#xff0c;完成不同PDF文件&#xff08;a&#xff0c;b&#xff0c;c....&#xff09;合并&#xff0c;同时要求主文件&#xff08;A&#xff09;小于6M。合并过程中发现各个PDF大小&#xff08;长宽&#xff09;并不相同&#xff0c;造成合并后效果不好也…

Vue3 学习笔记(八)Vue3 语法-Class 与 Style绑定详解

在 Vue.js 中&#xff0c;动态地绑定 CSS 类和样式是一项常见的需求。Vue 提供了几种不同的方法来实现这一点&#xff0c;包括对象语法、数组语法和组件的作用域插槽。 以下是这些方法的详细说明&#xff1a; 一、Class 绑定 1、对象语法 对象语法允许根据表达式的真值动态地切…

java知识管理系统源码(springboot)

项目简介 知识管理系统实现了以下功能&#xff1a; 知识管理系统的主要使用者分为管理员和用户两个角色。管理员功能有个人中心&#xff0c;用户管理&#xff0c;文章分类管理&#xff0c;文章信息管理&#xff0c;资料分类管理&#xff0c;资料下载管理&#xff0c;问答管理…

信捷 PLC C语言 定时器在FC中的使用

传统梯形图的定时器程序写起来简单&#xff0c;本文用C语言写定时器的使用。 定时器在c语言中使用&#xff0c;和普通梯形图中使用的区别之一是既有外部条件&#xff0c;也有内部条件。 1.建全局变量 2.建立FC POU 这个是功能POU程序。 这里的Enable是内部条件 3.调用包含定…

重写(外壳不变)

重写&#xff1a;是子类对父类非静态、非private修饰、非final修饰、非构造方法等的实现过程进行重新编写返回值和形参都不能改变。 重写的好处&#xff1a;子类可以根据需要&#xff0c;定义专属于自己的行为。&#xff08;子类能够根据需要实现父类的方法&#xff09; 方法…

大数据日志处理框架ELK方案

介绍应用场景大数据ELK日志框架安装部署 一&#xff0c;介绍 大数据日志处理框架ELK&#xff08;Elasticsearch、Logstash、Kibana&#xff09;是一套完整的日志集中处理方案&#xff0c;以下是对其的详细介绍&#xff1a; 一、Elasticsearch&#xff08;ES&#xff09; 基本…

Golang | Leetcode Golang题解之第515题在每个树行中找最大值

题目&#xff1a; 题解&#xff1a; func largestValues(root *TreeNode) (ans []int) {if root nil {return}q : []*TreeNode{root}for len(q) > 0 {maxVal : math.MinInt32tmp : qq nilfor _, node : range tmp {maxVal max(maxVal, node.Val)if node.Left ! nil {q …

怎么理解ES6 Proxy

Proxy 可以理解成&#xff0c;在目标对象之前架设一层 “拦截”&#xff0c;外界对该对象的访问&#xff0c;都必须先通过这层拦截&#xff0c;因此提供了一种机制&#xff0c;可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理&#xff0c;用在这里表示由它来 “代理…

前端知识串联笔记(更新中...)

1.MVVM MVVM 是指 Model - View - ViewModel&#xff0c;Model 是数据与业务逻辑&#xff0c;View 是视图&#xff0c;ViewModel 用于连接 View 和 Model Model ---> View&#xff1a;将数据转化成所看到的页面&#xff0c;实现的方式&#xff1a;Data Bindings -- 数据绑定…

.NET Core WebApi第6讲:WebApi的前端怎么派人去拿数据?(区别MVC)

一、前端界面小基础 head&#xff1a;引入CSS, 引入JS是写在head里面。 body&#xff1a;眼睛肉眼能看到的用户展示的界面是写在body里面。 二、前端怎么派人去拿数据&#xff1f; 1、MVC&#xff1a;前后端不分离&#xff0c;MVC相比WebApi只是多了一个views的文件夹 &am…

Spring boot 配置文件的加载顺序

Spring Boot 在启动时会扫描以下位置的 application.properties 或者 application.yml 文件作为全局配置文件&#xff1a; –file:./config/–file:./–classpath:/config/–classpath:/以下是按照优先级从高到低的顺序&#xff0c;如下所示&#xff1a; Spring Boot 会全部扫…

分类预测|基于GWO灰狼优化K近邻KNN的数据分类预测Matlab程序 多特征输入多类别输出GWO-KNN

文章目录 一、基本原理原理流程总结 二、实验结果三、核心代码四、代码获取五、总结 一、基本原理 灰狼优化&#xff08;GWO&#xff0c;Grey Wolf Optimization&#xff09;是一种基于灰狼社会行为的优化算法&#xff0c;常用于解决各种优化问题。将GWO应用于K近邻&#xff0…

『完整代码』宠物召唤

创建脚本并编写&#xff1a;PetFollowTarget.cs using UnityEngine; public class PetFollowTarget : MonoBehaviour{Transform target;float speed 2f;Animator animator;void Start(){target GameObject.Find("PlayerNormal/PetsSmallPos").gameObject.transform…

C++ 魔法三钥:解锁高效编程的封装、继承与多态

快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 目录 &#x1f4af;前言 &#x1f4af;封装 1.封装概念 2.封装格式 3.封装的原理 4.封装的作用 &#x1f4af;继承 1.继承的概念 2.继承格式 3.继承的…

情感咨询小程序的市场需求大吗?

情感咨询小程序的市场需求较大&#xff0c;主要体现在以下几个方面&#xff1a; 情感问题普遍存在5&#xff1a; 恋爱关系困扰&#xff1a;在恋爱过程中&#xff0c;人们经常会遇到诸如沟通不畅、争吵频繁、信任危机等问题。例如&#xff0c;年轻人在恋爱初期可能会因为不了解…

【现代C++】常量求值

现代C&#xff08;特别是C11及以后的版本&#xff09;增强了对编译时常量求值的支持&#xff0c;包括constexpr函数、constinit和consteval关键字。这些特性允许在编译时进行更多的计算&#xff0c;有助于优化运行时性能并确保编译时的数据不变性。 1. constexpr - 编译时常量…

震惊!总环On Hold之后,这些期刊也正在被调查!涉及Nature旗下、WR、JCLP....

On Hold期刊 总环被Oh Hold应该是学术圈最近最热的新闻了。相关的调查团队5GH 也发布了相关的推送报道此事&#xff1a; 在该推送的留言区&#xff0c;该团队也透露了一些后续的调查进展&#xff0c;涉及了Nature旗下期刊以及多个中科院一区TOP。评论中大家对于期刊的热议度很高…

医学影像学基础:理解CT、MRI、X射线和超声等医学影像设备的基本工作原理和成像技术

目录 医学影像学基础 1. X射线成像 2. 计算机断层扫描&#xff08;CT&#xff09; 3. 磁共振成像&#xff08;MRI&#xff09; 4. 超声成像 综合对比 1、成像原理对比 2、安全性对比 3、应用领域对比 4、设备特点对比 总结 医学影像学基础 在医学影像学中&#xff0…

super和this

相同点&#xff1a; 1.都是Java中的关键字 2.都只可以在非静态方法中使用 3.在构造方法中使用必须是第一条语句并且二者不可以同时存在不同点&#xff1a; 1.this是当前对象的引用&#xff0c;super是子类对象从父类继承下来部分成员的引用 2.在非静态成员方法中&#xff0c;…

CSS、Less、Scss

CSS、Less和SCSS都是用于描述网页外观的样式表语言&#xff0c;但它们各自具有不同的特点和功能。以下是对这三者的详细阐述及区别对比&#xff1a; 详细阐述 CSS&#xff08;Cascading Style Sheets&#xff09; 定义&#xff1a;CSS是一种用来表现HTML或XML等文件样式的计算机…