Python爬虫实战之原神公告获取

前言

好久不见了吧,博主最近也是成为了准高三,没有太多时间去创作文章了,所以这篇文章很有可能是高考前最后一篇文章了(也不一定😉)

言归正传,本次文章主要讲解如何去爬取原神官网的公告(我不玩原神!!!!)

开始

1.准备

  1. 好学的心
  2. httpx

2.寻找接口

首先我们来到原神官网,并按F12开启开发者工具

接着我们点击新闻,选择公告,在开发者工具中选择 Fetch/XHR 过滤请求

如果操作无误那么我们可以得到这个请求,也就是第二个请求

链接是这样的: https://content-static.mihoyo.com/content/ysCn/getContentList?pageSize=5&pageNum=1&channelId=12

这个就是我们要找到数据接口请求链接

接口参数详解

  1. pageSize :控制数据条数,比如我要请求前20条公告该参数值就为20,数据类型为 int
  2. pageNum :控制数据页数,比如我要20条数据,但是我pageSize填3,那么该参数为2的时候返回的就是前4-6条公告,其他以此类推,数据类型为 int
  3. channelId :博主暂时没有搞懂该参数含义,可能是某种标识,推测12代表公告,其他代表新闻这种意思

3.写代码

找到接口我们就应该开始写代码了,话不多说,上代码

import json

import httpx

with httpx.Client() as client:
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
    }
    url = "https://content-static.mihoyo.com/content/ysCn/getContentList?pageSize=20&pageNum=1&channelId=12"  # 这里以20条公告为例
    data = client.get(url=url, headers=headers)  # 请求公告数据
    data = json.loads(data.text)  # 将数据转换成字典
print(data)

运行程序,我们会得到下列返回结果

{'retcode': 0, 'message': '操作成功', 'data': {'total': 93, 'list': [{'contentId': '26400', 'channelId': ['12', '259'], 'title': '《原神》3.5版本「风花的呼吸」更新说明', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '720x320.png', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2023/02/28/c9ce9c6451451fa554ab74c2342d2c19_7924384204652977964.png'}]}], 'start_time': '2023-03-01 07:00:00', 'id': '26400'}, {'contentId': '26370', 'channelId': ['12', '259'], 'title': '《原神》「风花的呼吸」3.5版本更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '游戏内公告迭代-720-320安全区.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2023/02/27/48fe0090e4376a66b2f52007f8dc8e77_4916568639223877411.jpg'}]}], 'start_time': '2023-02-27 11:23:23', 'id': '26370'}, {'contentId': '25734', 'channelId': ['12'], 'title': '《原神》预下载已开启', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '720-320.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2023/01/16/adaca686a9d402cab8d822fa10732988_6944874481639867125.jpg'}]}], 'start_time': '2023-01-16 11:05:00', 'id': '25734'}, {'contentId': '25733', 'channelId': ['12'], 'title': '《原神》3.4版本「磬弦奏华夜」更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '690.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2023/01/16/7f341ba2332a05fba996d820334bdebb_2996032226775512164.jpg'}]}], 'start_time': '2023-01-16 10:29:13', 'id': '25733'}, {'contentId': '25037', 'channelId': ['12'], 'title': '《原神》3.3版本「六入尽明,诸相皆无」更新说明', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '720.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/12/07/5cc3065b6ef051d74479baf232831e35_7777248077405843881.jpg'}]}], 'start_time': '2022-12-07 09:33:08', 'id': '25037'}, {'contentId': '24955', 'channelId': ['12'], 'title': '《原神》3.3版本更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '游戏内公告迭代-720-320安全区.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/12/04/48fe0090e4376a66b2f52007f8dc8e77_3458819542487902745.jpg'}]}], 'start_time': '2022-12-05 10:30:00', 'id': '24955'}, {'contentId': '24436', 'channelId': ['12'], 'title': '《原神》「虚空鼓动,劫火高扬」3.2版本更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '游戏内公告迭代-720-320安全区.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/10/31/48fe0090e4376a66b2f52007f8dc8e77_2523267794398635617.jpg'}]}], 'start_time': '2022-10-31 11:38:43', 'id': '24436'}, {'contentId': '22749', 'channelId': ['11', '12'], 'title': '《原神》3.1版本「赤土之王与三朝圣者」更新说明', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-j简写', 'keyId': 1560152545989, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668058800, 'value': [{'name': '720x320-安全区600x280.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/09/27/3efa40b0e761d8f15fc640b7e12bfbf6_5749587768232257187.jpg'}]}, {'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}], 'start_time': '2022-09-28 07:00:00', 'id': '22749'}, {'contentId': '22714', 'channelId': ['11', '12'], 'title': '《原神》3.1版本「赤土之王与三朝圣者」更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-j简写', 'keyId': 1560152545989, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668058800, 'value': [{'name': '690-320.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/09/26/7f341ba2332a05fba996d820334bdebb_734662277370844096.jpg'}]}, {'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}], 'start_time': '2022-09-26 11:11:59', 'id': '22714'}, {'contentId': '22284', 'channelId': ['11', '12', '259'], 'title': '《原神》「千朵玫瑰带来的黎明」3.0版本更新维护预告', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': [{'name': '720-320.jpg', 'url': 'https://webstatic.mihoyo.com/upload/contentweb/2022/08/22/a926989766b3a74ae0a24917c7843b4d_6141685495939164846.jpg'}]}, {'arrtName': 'title-j简写', 'keyId': 1560152545989, 'value': ''}], 'start_time': '2022-08-22 11:44:38', 'id': '22284'}, {'contentId': '20165', 'channelId': ['12'], 'title': '《原神》2.5版本「薄樱初绽时」更新通知', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2022-02-16 07:00:00', 'id': '20165'}, {'contentId': '20020', 'channelId': ['12'], 'title': '《原神》2.5版本「薄樱初绽时」更新通知', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2022-02-14 11:11:27', 'id': '20020'}, {'contentId': '19990', 'channelId': ['12', '259'], 'title': '「流光飞彩」海灯节答谢邮件发放问题处理说明', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2022-02-09 01:25:00', 'id': '19990'}, {'contentId': '19560', 'channelId': ['12'], 'title': '《原神》2.4版本「飞彩镌流年」更新说明', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2022-01-05 07:00:00', 'id': '19560'}, {'contentId': '19494', 'channelId': ['12'], 'title': '《原神》「飞彩镌流年」2.4版本更新通知', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2021-12-31 10:30:00', 'id': '19494'}, {'contentId': '19427', 'channelId': ['12', '259'], 'title': '《原神》预下载即将开启', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2021-12-29 11:00:00', 'id': '19427'}, {'contentId': '18865', 'channelId': ['12'], 'title': '《原神》「皑尘与雪影」2.3版本更新说明', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1637667366526, 'value': [{'name': '版更说明720-320.jpg', 'url': 'https://uploadstatic.mihoyo.com/contentweb/20211123/2021112319360636499.jpg'}]}], 'start_time': '2021-11-24 07:00:00', 'id': '18865'}, {'contentId': '18664', 'channelId': ['12'], 'title': '《原神》「皑尘与雪影」2.3版本更新通知', 'author': None, 'type': None, 'tag': None, 'intro': None, 'url': None, 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1637549422649, 'value': [{'name': '版本更新通知_690x320.jpg', 'url': 'https://uploadstatic.mihoyo.com/contentweb/20211122/2021112210502220085.jpg'}]}], 'start_time': '2021-11-22 10:47:33', 'id': '18664'}, {'contentId': '18075', 'channelId': ['12'], 'title': '《原神》「雾海悬谜境」2.2版本活动说明', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2021-10-11 12:05:00', 'id': '18075'}, {'contentId': '18069', 'channelId': ['12'], 'title': '《原神》「雾海悬谜境」2.2版本更新通知', 'author': '', 'type': '', 'tag': '', 'intro': '', 'url': '', 'ext': [{'arrtName': 'title-简写', 'keyId': 1560152565522, 'value': ''}, {'arrtName': 'banner', 'keyId': 1591668079640, 'value': []}], 'start_time': '2021-10-11 10:33:36', 'id': '18069'}]}}

我们可以将json字符串格式化,然后观察其数据结构,下面是代码部分

import json

import httpx

with httpx.Client() as client:
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
    }
    url = "https://content-static.mihoyo.com/content/ysCn/getContentList?pageSize=20&pageNum=1&channelId=12"  # 这里以20条公告为例
    data = client.get(url=url, headers=headers)  # 请求公告数据
    data = json.loads(data.text)  # 将数据转换成字典
    data = data['data']['list']
data_result = {}  # 定义空字典,用作储存处理完毕的数据
for i in range(0, 20):
    data_result.update({i: {"id": i + 1}})
    data_result[i]["title"] = data[i]["title"]
    try:  # 防止链接为空
        data_result[i]["img"] = data[i]["ext"][1]["value"][0]["url"]  # 获取图片链接
    except IndexError:
        data_result[i]["img"] = None
    data_result[i]["url"] = f"https://ys.mihoyo.com/main/news/detail/{data[i]['contentId']}"
print(data_result)

运行程序我们得到下列结果

{0: {'id': 1, 'title': '《原神》3.5版本「风花的呼吸」更新说明', 'img': 'https://webstatic.mihoyo.com/upload/contentweb/2023/02/28/c9ce9c6451451fa554ab74c2342d2c19_7924384204652977964.png', 'url': 'https://ys.mihoyo.com/main/news/detail/26400'}, 1: {'id': 2, 'title': '《原神》「风花的呼吸」3.5版本更新维护预告', 'img': 'https://webstatic.mihoyo.com/upload/contentweb/2023/02/27/48fe0090e4376a66b2f52007f8dc8e77_4916568639223877411.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/26370'}, 2: {'id': 3, 'title': '《原神》预下载已开启', 'img': 'https://webstatic.mihoyo.com/upload/contentweb/2023/01/16/adaca686a9d402cab8d822fa10732988_6944874481639867125.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/25734'}, 3: {'id': 4, 'title': '《原神》3.4版本「磬弦奏华夜」更新维护预告', 'img': 'https://webstatic.mihoyo.com/upload/contentweb/2023/01/16/7f341ba2332a05fba996d820334bdebb_2996032226775512164.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/25733'}, 4: {'id': 5, 'title': '《原神》3.3版本「六入尽明,诸相皆无」更新说明', 'img': 'https://webstatic.mihoyo.com/upload/contentweb/2022/12/07/5cc3065b6ef051d74479baf232831e35_7777248077405843881.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/25037'}, 5: {'id': 6, 'title': '《原神》3.3版本更新维护预告', 'img': 'https://webstatic.mihoyo.com/upload/contentweb/2022/12/04/48fe0090e4376a66b2f52007f8dc8e77_3458819542487902745.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/24955'}, 6: {'id': 7, 'title': '《原神》「虚空鼓动,劫火高扬」3.2版本更新维护预告', 'img': 'https://webstatic.mihoyo.com/upload/contentweb/2022/10/31/48fe0090e4376a66b2f52007f8dc8e77_2523267794398635617.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/24436'}, 7: {'id': 8, 'title': '《原神》3.1版本「赤土之王与三朝圣者」更新说明', 'img': 'https://webstatic.mihoyo.com/upload/contentweb/2022/09/27/3efa40b0e761d8f15fc640b7e12bfbf6_5749587768232257187.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/22749'}, 8: {'id': 9, 'title': '《原神》3.1版本「赤土之王与三朝圣者」更新维护预告', 'img': 'https://webstatic.mihoyo.com/upload/contentweb/2022/09/26/7f341ba2332a05fba996d820334bdebb_734662277370844096.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/22714'}, 9: {'id': 10, 'title': '《原神》「千朵玫瑰带来的黎明」3.0版本更新维护预告', 'img': 'https://webstatic.mihoyo.com/upload/contentweb/2022/08/22/a926989766b3a74ae0a24917c7843b4d_6141685495939164846.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/22284'}, 10: {'id': 11, 'title': '《原神》2.5版本「薄樱初绽时」更新通知', 'img': None, 'url': 'https://ys.mihoyo.com/main/news/detail/20165'}, 11: {'id': 12, 'title': '《原神》2.5版本「薄樱初绽时」更新通知', 'img': None, 'url': 'https://ys.mihoyo.com/main/news/detail/20020'}, 12: {'id': 13, 'title': '「流光飞彩」海灯节答谢邮件发放问题处理说明', 'img': None, 'url': 'https://ys.mihoyo.com/main/news/detail/19990'}, 13: {'id': 14, 'title': '《原神》2.4版本「飞彩镌流年」更新说明', 'img': None, 'url': 'https://ys.mihoyo.com/main/news/detail/19560'}, 14: {'id': 15, 'title': '《原神》「飞彩镌流年」2.4版本更新通知', 'img': None, 'url': 'https://ys.mihoyo.com/main/news/detail/19494'}, 15: {'id': 16, 'title': '《原神》预下载即将开启', 'img': None, 'url': 'https://ys.mihoyo.com/main/news/detail/19427'}, 16: {'id': 17, 'title': '《原神》「皑尘与雪影」2.3版本更新说明', 'img': 'https://uploadstatic.mihoyo.com/contentweb/20211123/2021112319360636499.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/18865'}, 17: {'id': 18, 'title': '《原神》「皑尘与雪影」2.3版本更新通知', 'img': 'https://uploadstatic.mihoyo.com/contentweb/20211122/2021112210502220085.jpg', 'url': 'https://ys.mihoyo.com/main/news/detail/18664'}, 18: {'id': 19, 'title': '《原神》「雾海悬谜境」2.2版本活动说明', 'img': None, 'url': 'https://ys.mihoyo.com/main/news/detail/18075'}, 19: {'id': 20, 'title': '《原神》「雾海悬谜境」2.2版本更新通知', 'img': None, 'url': 'https://ys.mihoyo.com/main/news/detail/18069'}}

尾声

至此,大家应该都学会了如何爬取官网公告数据了吧,如果你知道nonebot还可以整合拓展一下,实现qq查看原神公告,有机会我也会把源代码放给大家,那么感谢大家的阅读,我们下次再见

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

英飞凌BLDC驱动芯片替换-屹晶微

EG12521替代IR2106,NCP5106 EG2003替代IR2003 EG2103替代IR2103、IRS2003,IRS2108 EG2104替代IR2104 EG2104D替代IR2104、IR2008、IR2004 EG2104M替代IR2104、IR2008、IR2004 EG2104S替代IR2104 EG2106替代IR2106、IR2101、FAN7382、IRS2005、NCP…

使用flask开启一个简单的应用

Flask是非常流行的 Python Web框架,它能如此流行,原因主要有如下几点: 。有非常齐全的官方文档,上手非常方便。 。有非常好的扩展机制和第三方扩展环境,.工作中常见的软件都会有对应的扩展。自己动手实现扩展也很容易。 。社区活跃度非常高。…

基于springboot的智慧养老系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

less 笔记

1 margin-left 之后有 margin: 0 导致margin-left 无效 --> 不能重复定义 .btn-group {margin-left: calc(100% - 350px);display: inline-block;margin: 0; // 重复定义 导致上面 没有效果padding: 0; } 2 一定要F12检查元素 看各个div的宽度是否太长 导致靠左靠右 计算不…

[SSM]Spring6基础

目录 一、Spring启示录 1.1OCP开闭原则 1.2DIP依赖倒置原则 1.3IoC控制反转 1.4DI依赖注入 二、Spring概述 2.1Spring简介 2.2Spring八大模块 2.3Spring特点 三、Spring的入门程序 3.1Spring的文件 3.2第一个Spring程序 3.3第一个Spring程序详细剖析 3.4Spring6启…

Vue绑定class样式

效果&#xff1a;指定变换成某种颜色 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.basic{width: 400px;height: 100px;border: 1px solid black;}.happy{backg…

谈谈——互联网生活中的隐私保护

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

打包apk时出现Execution failed for task ‘:app:lintVitalRelease

程序可以正常运行&#xff0c;但是打包apk的时候报Execution failed for task ‘:app:lintVitalRelease导致打包失败&#xff0c;原因是执行lintVitalRelease失败了&#xff0c;存在错误。解决办法&#xff1a;在app模块的build.gradle的Android里面添加如下代码&#xff1a; l…

Nacos服务注册和配置中心(Config,Eureka,Bus)2

Nacos数据模型 Nacos领域模型,Namespace命名空间、Group分组、集群这些都是为了进行归类管理&#xff0c;把服务和配置文件进行归类&#xff0c;归类之后就可以实现一定的效果&#xff0c;比如隔离。对于服务来说&#xff0c;不同命名空间中的服务不能够互相访问调用 N…

Spring Boot 中的熔断器:原理和使用

Spring Boot 中的熔断器&#xff1a;原理和使用 什么是熔断器&#xff1f; 熔断器是一种用于处理分布式系统中故障的设计模式。它可以防止出现故障的服务对整个系统造成连锁反应。熔断器通过监控故障服务的调用情况&#xff0c;当故障服务出现问题时&#xff0c;熔断器会迅速…

MacOS使用USB接口与IPhone进行Socket通信

演示效果如下: 开源地址: GitHub - rsms/peertalk: iOS and Mac Cocoa library for communicating over USB 克隆源码: git clone https://github.com/rsms/peertalk.git 克隆后打开peertalk然后启动xcode工程 先启动MacOS服务端工程,再启动iOS客户端工程 客户端 服务端

MySQl数据库第八课-------SQL命令查询-------主要命脉

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com —————————————————————————————— 目录 查询数据 条件 逻辑运算符 模糊查询 范围查询 in 判断空 UNION 排序 聚合 分组&#xff1a;group by —————————…

C++中随机数的使用总结

随机数 rand() 随机数发生器 #include <stdio.h> #include <unistd.h> #include <iostream> #include <string>using namespace std;int main(int argc, char *argv[]) {cout << "this is main()" << endl;cout << rand…

弹性盒子布局

在弹性盒子布局&#xff08;flexbox&#xff09;中&#xff0c;存在两个关键概念&#xff1a;主轴&#xff08;main axis&#xff09;和交叉轴&#xff08;cross axis&#xff09;。 主轴是弹性盒子布局中的一个方向&#xff0c;它定义了弹性盒子的主要方向。在默认情况下&…

[MySQL]MySQL表中数据的增删查改(CRUD)

[MySQL]MySQL表中数据的增删查改(CRUD) 文章目录 [MySQL]MySQL表中数据的增删查改(CRUD)1. 新增数据1.1 单列插入1.2 多列插入1.3 插入否则更新1.4 替换 2. 基本查询数据2.1 全列查询2.2 指定列查询2.3 查询字段为表达式2.4 为查询结果指定别名2.5 结果去重2.6 where子句2.7 or…

flutter开发实战-多语言flutter intl

flutter开发实战-多语言flutter intl 之前做的应用中有用到多语言&#xff0c;一直没有整理&#xff0c;这里整理一下多语言设置流程。 使用的是Android studio 一、flutter_intl 插件 使用Android studio安装flutter_intl 插件&#xff0c;更新或者安装flutter_intl 插件后…

Django_自定义文件存储类并将图片上传到FastDFS

目录 将图片到FastDFS和浏览的流程图 使用自定义文件存储类 1、定义存储类 2、创建FastDFS的配置文件 3、修改settings.py配置 4、上传图片进行验证 4.1 定义一个包含ImageField字段的模型类 4.2 登录django的admin后台 4.3 上传图片 4.4 查看图片 源码等资料获取方…

webrtc源码阅读之视频RTP接收JitterBuffer

在音视频通信中&#xff0c;网络抖动和延迟是常见的问题&#xff0c;会导致音视频质量下降和用户体验不佳。为了解决这些问题&#xff0c;WebRTC引入了Jitter Buffer&#xff08;抖动缓冲区&#xff09;这一重要组件。Jitter Buffer是一个缓冲区&#xff0c;用于接收和处理网络…

树与图的(深度 + 广度)优先遍历

目录 一、树与图的存储1.树的特性2.图的分类3.有向图的储存结构 二、树与图的深度优先遍历的运用树的重心题意分析代码实现 三、树与图的广度优先遍历的运用图中点的层次题意分析代码实现 一、树与图的存储 1.树的特性 树是一种特殊的图,具有以下两个重要特性: 无环 树是一个…

7.Java 运算符

运算符分成以下几组 算术运算符关系运算符位运算符逻辑运算符赋值运算符其他运算符 1.算术运算符 public class Test {public static void main(String[] args) {int a 10;int b 20;int c 25;int d 25;System.out.println("a b " (a b) );System.out.print…
最新文章