数据解析

参考此b站课程

总结的学习笔记

代码均是学习用,拒绝商用,侵权则删

一、数据解析概述

1. 回顾聚焦爬虫:

爬取页面中指定的数据内容

(1)编码流程:

  • 指定url
  • 发起请求
  • 获取响应数据
  • 数据解析
  • 将解析到的局部数据持久化存储

2. 数据解析分类:

  • 正则
  • bs4(只能用在Python语言中)
  • xpath(重点)

3. 数据解析原理概述

  • 解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储
    1. 进行指定标签的定位
    2. 对标签或者标签对应的属性中存储的数据值进行提取(解析)

二、图片数据爬取

1. 前引代码(如何获取图片数据以及存储)

  • 我们存储的是图片,图片对应的是一组二进制数据
  • requests.get(url=url).content
import requests
# 如何爬取图片数据
url = 'https://game.gtimg.cn/images/yxzj/img201606/heroimg/542/542.jpg'
# content 返回的是二进制形式的图片数据
# text (文本字符串)
# content (二进制形式)
# json() (字典 对象)img_data_test = requests.get(url=url).content# wb 二进制写入
with open('./test.jpg', 'wb') as fp:fp.write(img_data_test)
print("over!!!")

2. 正则解析

(1)常用正则表达式

  • 可在菜鸟上多看看

(2)需求:

  • 爬取热图网“爆笑”版块的图片

  • 网址

(3)分析:

  • 首先用通用爬虫获取一整张页面(在通用爬虫的基础上,再运用聚焦爬虫),再使用聚焦爬虫将整张页面中局部数据(图片)进行解析。

(4)代码:(UA伪装修改一下)

import requests
import re # 正则表达式
import os
# 创建一个文件夹,保存所有的图片
if not os.path.exists('../picLibs'):os.mkdir('../picLibs')
url = 'https://www.ratoo.net/a/baoxiao/'headers = {'User-Agent':'Mozil。。。。'
}# 使用通用爬虫对url对应的一整张页面进行爬取
page_content = requests.get(url=url, headers=headers).text
# print(page_content) # 打印后发现爬取下来的界面源码 <img src='' 而不是" ",所以一开始找不到东西 ex = '<div class="pic1">.*?<img src="(.*?)" border.*?</div>'# 元素分析
# <div class="pic1">
#     <a class="listimg" href="/a/baoxiao/45457.html" title="猫咪和小鸭一起舞起来" target="_blank">
#           <img src="//img.ratoo.net/uploads/tupian/20210907/fdykn12n51v662.gif" border="0">猫咪和小鸭一起舞起
#     </a>
# </div>
# str = '<div class="pic1">' \
#       '<a class="listimg" href="/a/baoxiao/45457.html" title="猫咪和小鸭一起舞起来" target="_blank">' \
#       '<img src="//img.ratoo.net/uploads/tupian/20210907/fdykn12n51v662.gif" border="0">猫咪和小鸭一起舞起' \
#       '</a>' \
#       '</div>'# 正则表达式
# 从<div class="pic1">开始 到</div>结束
ex = '<div class="pic1">.*?<img src=\'(.*?)\' border.*?</div>'
img_list = re.findall(ex, page_content, re.S)
# print(img_list)
# 仍需要拼接协议头成完整的图片地址
for src in img_list:# 拼接出一个完整的图片urlsrc = 'https:' + src# 请求到了图片的二进制数据data = requests.get(url=src, headers=headers).content# 生成图片名称img_name = src.split('/')[-1] # 以 / 划分,取最后一个串 -1# 图片存储的路径img_path = './picLibs/' + img_namewith open(img_path, 'wb') as fp:fp.write(data)print(img_name,'下载成功!!!')print("采集结束")

(5)拓展需求:

  • 在这个“爆笑”版块下,还有好多个页码,每一个页码对应的是每一个页面数据,每个页面都有对应的图片数据,以上刚才所写的,只是针对第一页所表示的url中的图片数据进行爬取,但我们还想接着爬取2,3,4…页面的图片数据,怎么延伸?

请添加图片描述

  • 仔细观察每页的url的不同:(只需要修改9_x的页码)

请添加图片描述

  • 代码如下:
import requests
import re # 正则表达式
import os
# 创建一个文件夹,保存所有的图片
if not os.path.exists('./picLibs'):os.mkdir('./picLibs')
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4750.0 Safari/537.36'
}
# 设置一个通用的url模板
url = 'https://www.ratoo.net/a/baoxiao/list_9_%d.html'
# pageNum = 2
for pageNum in range(1, 6):new_url = format(url%pageNum)# 使用通用爬虫将页面中所有的图片数据解析/提取出来page_content = requests.get(url=new_url, headers=headers).textex = '<div class="pic1">.*?<img src=\'(.*?)\' border.*?</div>'img_list = re.findall(ex, page_content, re.S)# print(img_list)# 仍需要拼接协议头成完整的图片地址for src in img_list:# 拼接出一个完整的图片urlsrc = 'https:' + src# 请求到了图片的二进制数据data = requests.get(url=src, headers=headers).content# 生成图片名称img_name = src.split('/')[-1] # 以 / 划分,取最后一个串 -1# 图片存储的路径img_path = './picLibs/' + img_namewith open(img_path, 'wb') as fp:fp.write(data)print(img_name,'下载成功!!!')print("采集结束")

3. bs4进行数据解析

(1)回顾数据解析的原理:

  • 标签定位
  • 提取标签、标签属性中存储的数据值

(2)bs4数据解析的原理:

  • 1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中
  • 2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取

(3)环境安装:

pip install bs4  # 安装模块(对应好Python环境再安装 | 可以直接在pycharm 安装)
pip install lxml # 安装解析器(在xpath中也会用到)
  • 如有安装缓慢问题:
需要将pip源设置为国内源,阿里源等等(修改镜像)

(4)如何实例化BeautifulSoup对象:

  • from bs4 import BeautifulSoup (在bs4模块中,选择导入BeautifulSoup类(对象))【第一步:导包】

  • 对象的实例化:

    • 将本地的HTML文档中的数据加载到该对象中
    fp = open('./test.html','r',encoding='utf-8')
    soup = BeautifulSoup('fp','lxml')
    
    • 将互联网上获取的页面源码加载到该对象中
    page_text = response.text
    soup = BeautifulSoup(page_text,'lxml')
    
  • 提供的用于数据解析的方法和属性:

    • soup.tagName (后面加标签名):返回的是html(文档)中第一次出现的tagName对应的标签

    • soup.find():

      • find(‘tagName’)等同于soup.tagName
      • 属性定位:
        • soup.find(‘div’,class_/id/attr=‘song(名称)’):class _ 不加下划线就变成关键字了
    • soup.find_all(‘tagName’):返回符合要求的所有标签(列表)

    • select:

      • soup.select(选择器:类选择器,id选择器。。。):返回的是一个列表(多个)
      • 层级选择器:
        • soup.select(’.tang > ul > li > a’):>表示的是一个层级(直系准确定位)
        • soup.select(’.tang > ul a’):空格表示的是多个层级
    • 获取标签之间的文本数据:

      • soup.a.text/string/get_text()
        
      • text/get_text():可以获取某一个标签中所有的文本内容(即是这些文本内容不属于此标签的直系文本内容,也可以获取到)

      • string:只可以获取该标签下面直系的文本内容

    • 获取标签中属性值:例如:[‘href’]

      • soup.a['href']  # 取到标签直接取属性值即可
        

(5)bs4实战项目

  • 需求:爬取三国演义小说所有的章节标题和章节内容

  • 诗词名句网

  • 请添加图片描述

  • 设计思路:

    • 首先用通用爬虫爬取首页的页面数据(包含了标题,可以跳转)
    • 解析获取到标题内容后,(因为具体章节内容在详情页中)还要再获取标题对应的链接地址。(a标签的href)
  • 过程中注意一点,就是中文乱码的问题:(这是一种解决方法)

# 对首页的页面数据进行爬取
page_text = requests.get(url=url, headers=headers)
page_text.encoding = 'utf-8'
page_text = page_text.text
  • 代码:(UA伪装需要修改)
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozill。。。'
}
url = 'https://www.shicimingju.com/book/sanguoyanyi.html'
# 对首页的页面数据进行爬取
page_text = requests.get(url=url, headers=headers)
page_text.encoding = 'utf-8'
page_text = page_text.text
# print(page_text)
# 在首页中解析出章节的标题和详情页的url
# 1. 实例化BeautifulSoup对象, 需要将页面源码数据加载到该对象中
soup = BeautifulSoup(page_text, 'lxml')
# 解析章节标题和详情页的url
li_list = soup.select('.book-mulu > ul > li')
# print(li_list)
fp = open('./sanguo.txt','w', encoding='utf-8')
for li in li_list:title = li.a.string# print(title)detail_url = 'https://www.shicimingju.com' + li.a['href']# 对详情页发起请求,解析出章节内容(打开开发者工具查看元素结构)detail_text = requests.get(url=detail_url, headers=headers)detail_text.encoding = 'utf-8'detail_text = detail_text.text# 解析出详情页中相关的章节内容soup_detail = BeautifulSoup(detail_text, 'lxml')div_tagClass = soup_detail.find('div',class_='chapter_content')# 解析到了章节的内容content = div_tagClass.get_text()# print(content)# 持久化存储fp.write(title + ':' + content + '\n')print(title,'爬取章节结束')print('全部结束')

4. xpath解析:最常用且最便捷高效的一种解析方式。通用性高。

(1)xpath解析原理:

1. 实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中。
2. 调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获。

(2)环境的安装:

pip install lxml (安装解析器 |看好Python环境再安装 | 可以直接用Pycharm安装)

(3)如何实例化一个etree对象:from lxml import etree

1. 将本地的html文档中的源码数据加载到etree对象中- etree.parse(filePath):返回一个etree对象
2. 可以将从互联网上获取的源码数据加载到该对象中- etree.HTML('page_text)                 
# 接着就是调用xpath()方法  只有这一个,重点是xpath表达式 | 与BeautifulSoup(有好多方法 find select。。。)不同              
- xpath('xpath表达式')

(4)xpath表达式

  • 实例化好了一个etree对象,且将被解析的源码加载到了该对象中 | parse(‘待解析的源码,可以是本地的,也可以是直接网上的数据’) | HTML()
from lxml import etree
tree = etree.parse('test.html') # 本地的一个test.html | tree 返回的一个etree对象
  • 接着就是xpath表达式了 | tree.xpath(‘xpath表达式’)
    • / :表示的是从根节点开始定位。(最左侧的/)| 表示的是一个层级
    • //:表示的是多个层级 | (最左侧)可以表示从任意位置开始定位,找到所有的
    • 属性定位://div[@class=“song”] | tag[@attrName=“attrValue”]
    • 索引定位://div[@class=“song”]/p[3] 索引是从1开始的。
    • 取文本:(取的是标签中间存储的文本内容)| 换行 \t 空格 也属于文本内容
      • /text():但是必须先定位到直系的标签,即是直系文本。| 获取的是标签中直系的文本内容
      • //text():获取的是标签中非直系的文本内容 (所有的文本内容)
    • 取属性:(取得定位的标签的对应属性的属性值)
      • /@attrName ===> img/@src
# [<Element a at 0x1044f5f48>,...]# 1.
r = tree.xpath('/html/head/title') # 层级 从根节点/开始逐步定位到title (但是取到的是元素列表,而不是值)# 2.
r = tree.xpath('/html/body/div') # 返回Element 列表# 3.
r = tree.xpath('/html//div') # 4.
r = tree.xpath('//div') #  (最左侧)可以表示从任意位置开始定位,找到所有的div# 5.属性定位
r = tree.xpath('//div[@class="song"]') # @后跟属性定位的属性名称 id 类等等 | 属性值 song | 定位到class为song的div | 返回element列表# 6.索引定位 | 索引是从1开始的
r = tree.xpath('//div[@class="song"]/p[3]') # /p 直系层级 p | 返回element元素列表 | 找到class为song的div下的第三个p标签# 7. 取文本 例:<li><a href = 'https' class="du">杜牧</a></li> 取“杜牧”文本
r = tree.xpath('//div[@class="tang"]//li[5]/a/text()')[0] # 返回第5个li下的a标签间存储的文本列表,用[0]取到列表第一个字符串。# 8. 
r = tree.xpath('//div[@class="song"]/img/@src') # 取属性值 | 列表

(5)xpath实战一:爬取58二手房的房源信息

  • 58

  • 代码:修改UA伪装

import requests
from lxml import etree
headers = {'User-Agent':'Mozi。。。.36'
}
# 爬取到页面源码数据
url = 'https://bj.58.com/ershoufang/?PGTID=0d100000-0000-119a-7933-11a4db6d83bf&ClickID=2'
page_text = requests.get(url=url, headers=headers).text
# 数据解析
tree = etree.HTML(page_text)
div_lists = tree.xpath('//section[@class="list"]/div[@class="property"]')
# print(div_lists[0].xpath('./a//div[@class="property-content"]//div[@class="property-content-title"]/h3/text()'))
fp = open('58.txt', 'w',encoding='utf-8')
for div in div_lists:# 局部解析title = div.xpath('./a//div[@class="property-content"]//div[@class="property-content-title"]/h3/text()')[0] # ./ 就代表 div 当前,我们已经定位到的“多个”div | 因为解析的参照物已经不是整个源码了,而是当前获取到的div# 没有 “.” ,/就代表整个源码的根标签# print(title)fp.write(title+'\n')
print('over!!!')

(6)xpath实战二:解析下载图片数据

  • 分类版块下的背景模块

  • 代码:修改UA伪装

import requests
from lxml import etree
import os
headers = {'User-Agent':'.......'
}
url = 'https://pic.netbian.com/4kbeijing/'
response = requests.get(url=url, headers=headers)
# 手动设定响应数据的编码格式
# response.encoding = 'utf-8' # 手动将响应数据编码成utf-8,没有用
# page_tex = response.text # 设置完编码格式后,.text会报错  ?
page_text = response.text
# 数据解析 :src属性值  alt属性
tree = etree.HTML(page_text)
li_list = tree.xpath('//div[@class="slist"]//li')
for li in li_list:img_src = 'https://pic.netbian.com' + li.xpath('./a/img/@src')[0]# print(img_src)img_name = li.xpath('./a/img/@alt')[0] + '.jpg'# 通用处理中文乱码的解决方案 先编码再解码,再重新赋值img_name = img_name.encode('iso-8859-1').decode('gbk')# print(img_name, img_src) # 发现乱码, 原始页面的编码与pycharm编码冲突  用utf-8试一试# 创建文件夹if not os.path.exists('./pic'):os.mkdir('./pic')#   请求图片进行持久化存储 图片是二进制数据img_data = requests.get(url = img_src, headers=headers).contentimg_path = 'pic/' + img_namewith open(img_path, 'wb') as fp:fp.write(img_data)print(img_name, '下载成功')print('全部采集结束')

(7)xpath实战三:解析出所有城市名称

  • 空气质量在线监测分析平台

  • 代码:修改UA伪装

import requests
from lxml import etree
headers = {'User-Agent':'。。。'
}
url = 'https://www.aqistudy.cn/historydata/'
page_text = requests.get(url=url, headers=headers).text
tree = etree.HTML(page_text)# 解析到热门城市和所有城市对应的a标签
# //div[@class="bottom"]/ul/li/a             热门城市a标签的层级关系
# //div[@class="bottom"]/ul/div[2]/li/a      全部城市a标签的层级关系# 层级关系不一样  怎么处理? 可以使用逻辑运算符
a_city_name = tree.xpath('//div[@class="bottom"]/ul/li/a | //div[@class="bottom"]/ul/div[2]/li/a')
all_city_name = []
for a in a_city_name:name = a.xpath('./text()')[0]all_city_name.append(name)print(all_city_name, len(all_city_name))''' 分了两步写,修改用统一的公式
hot_li_list = tree.xpath('//div[@class="bottom"]/ul/li')
all_city_names = [] # 存储热门城市的名字
for li in hot_li_list:hot_city_name = li.xpath('./a/text()')[0]all_city_names.append(hot_city_name) # 存储进列表中# 解析的是全部城市的名称
city_names_list = tree.xpath('//div[@class="bottom"]/ul/div[2]/li')
for li in city_names_list:city_name = li.xpath('./a/text()')[0]all_city_names.append(city_name)print(all_city_names, len(all_city_names))'''

(8)xpath实战综合:爬取站长素材中免费简历模板

  • 点击下载地址,最后下载的是.rar的数据包(增加分页操作)

  • 模板

  • 代码:

import requests
import os
from lxml import etree
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4750.0 Safari/537.36'
}
url = 'https://sc.chinaz.com/jianli/free_%d.html'
if not os.path.exists('./muban'):os.mkdir('./muban')
url_list = []
# 首先先拿到各个详情页的url集合 分页(先弄个几页)获取
for pageNum in range (1, 3):if (pageNum == 1):new_url = 'https://sc.chinaz.com/jianli/free.html'else:new_url = format(url % pageNum)# print(new_url)page_text = requests.get(url = new_url, headers = headers).text# print(page_text)tree = etree.HTML(page_text)# 拿到详情页链接并重新拼接地址url_list_xpath = tree.xpath('//div[@id="main"]//a/@href')# print(url_list_xpath)for i in url_list_xpath:detail_url = 'https:' + i# print(detail_url)url_list.append(detail_url)# 到详情页获取链接地址
for i in url_list:p_t = requests.get(url=i, headers=headers).texttree1 = etree.HTML(p_t)url_rar = tree1.xpath('//div[@class="clearfix mt20 downlist"]/ul/li/a/@href')[0]# print(url_rar)model_name = tree1.xpath('//div[@class="ppt_tit clearfix"]/h1/text()')[0]model_name = './muban/' + model_name.encode('iso-8859-1').decode('utf-8').replace(" ", "") + str(url_rar).split('/')[-1] # 以 / 划分,取最后一个串 -1 再加上去空格# print(model_name)rar_data = requests.get(url=url_rar, headers=headers).contentwith open(model_name, 'wb') as fp: # wb 二进制 无需再加encodingfp.write(rar_data)print(model_name,'下载结束')
print('所有都结束了')

后续实战项目会继续补充…

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

相关文章

  1. Redis笔记

    Redis 什么是NoSQL NoSQL:&#xff08;Not Only SQL&#xff09;不仅仅是SQL 泛指非关系型数据库&#xff0c;随着web2.0互联网的诞生&#xff01;传统的关系型数据库很难对付web2.0时代&#xff01;尤其是超大规模的高并发社区&#xff01;暴露出来很多难以克服的问题&#x…...

    2024/4/19 20:15:20
  2. Pygame简单深度优先算法生成迷宫

    学习路径计算之前需要一个场景&#xff0c;网上查了下迷宫生成方法花了点时间写了个简单的迷宫生成器 基本原理十分简单&#xff1a; 使用2维矩阵表示迷宫&#xff0c;每一个节点有四面墙&#xff0c;使用深度搜索&#xff0c;随机顺序向四个方向移动,&#xff0c;如果遇到已到…...

    2024/4/7 21:25:43
  3. 【已满足】企业级开发的工作流平台-学习借鉴-集成分布式项目都非常方便

    关注微信公众号SteveCode回复&#xff1a;flowable 即可获得源码 yqmm-flowable flowable-ui部署运行 官网下载flowable-6.6.0 : https://github.com/flowable/flowable-engine/releases/download/flowable-6.6.0/flowable-6.6.0.zip 将压缩包中的 flowable-6.6.0\wars\flo…...

    2024/4/13 14:02:51
  4. 项目启动会实用操作指南,附项目启动会列表

    项目启动会是每个一个项目经理的必修功课&#xff0c;但是往往很多人召开启动会的效果一般&#xff0c;甚至很多项目经理对如何召开项目启动会还不是很熟悉&#xff0c;今天分享给大家一个召开启动会的实用操作指南。 项目不是在结束时失败&#xff0c;而是在开始时失败。——…...

    2024/4/14 19:52:16
  5. Maven插件无法下载的特殊情况

    问题背景:在学习maven的过程中出现maven插件无法下载解析的情况。 于是开始面向百度面向csdn尝试解决这一问题: 1.镜像问题:这是查到的最多的是这种解法&#xff0c;但是通过尝试&#xff0c;换过阿里、华为、腾讯的镜像后并没有解决问题&#xff0c;于是便放弃了这一方向。 …...

    2024/5/4 15:49:07
  6. 【python】tkinter entry报错AttributeError: ‘NoneType‘ object has no attribute ‘get‘

    【报错】#AttributeError: NoneType object has no attribute get 【代码】 entryT Entry(window, width10).grid(column0, rowentrynr) entryT.get()报错 【解决方法】 entryT Entry(window, width10) entryT.grid(column0, rowentrynr) 分开写...

    2024/4/18 5:03:09
  7. 数据结构|堆

    1. 堆的概念 把元素集合 k {k0, k1, k2, …, kn-1} 按完全二叉树的顺序存储在一个一维数组中&#xff0c;并满足&#xff1a; ki < k2i 1 且 ki < k2i 2&#xff08;ki > k2i 1 且 ki > k2i 2&#xff09;i 0, 1, 2, 3…&#xff0c;则称为小堆&#xff08;…...

    2024/4/15 6:18:07
  8. 补单平台淘宝补单计划

    现在很多人对于淘宝补单增加淘宝权重和流量有着很多疑问,到底淘宝补单怎么操作? 据了解&#xff0c;“爆权补单法”能够避免平台稽查和短时间内完善店铺的权重,针对数据不好的新店铺玩法。 接下来我给大家介绍一下淘宝补单怎么操作?实现九天后入池真实转化分享 店铺是否需…...

    2024/4/13 14:02:56
  9. 记一次最近生产环境项目中发生的两个事故及处理方法

    前言 年前放假的几个月内&#xff0c;公司项目发生了两次事故&#xff0c;虽然与我无关&#xff0c;但事故发生后整个团队都受到影响&#xff0c;主管需要给客户写事故报告&#xff0c;客户甚至打电话给公司领导严肃批评&#xff0c;我想经历过这种事的朋友不在少数&#xff0c…...

    2024/4/13 14:03:01
  10. 【Git】<分布式版本控制工具>Git安装常用操作

    目录 一、Git环境配置&#xff1a; 1.软件下载&#xff1a; 2.启动Git 二、常用的Linux命令&#xff1a; 三、Git配置&#xff1a; Git相关的配置文件&#xff1a; 设置用户名与邮箱&#xff08;用户标识&#xff0c;必要&#xff09; 四、Git核心&#xff1a; 1.三个…...

    2024/4/15 9:10:38
  11. dockerfile基本信息

    目录一、docker基本信息1、dockerfile的构成2、dockerfile操作指令3、镜像分层4、docker分层原理二、用dockerfile创建一个镜像1、创建Dockerfile文件2、运行Dockerfile文件一、docker基本信息 1、dockerfile的构成 docker是一组由指令组成的文件&#xff0c;共有四个结构部分…...

    2024/4/13 14:02:51
  12. Mybatis狂神说听课笔记(不完整)

    1.简介 1.1 什么是Mybatis MyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff08;Plain Old …...

    2024/4/19 15:54:00
  13. java面试题每日一练(2)

    文章目录1、Java有哪些数据类型&#xff1f;2、面向对象的三个基本特征?3、访问修饰符public&#xff0c;private&#xff0c;protected&#xff0c;以及不写时的区别&#xff1f;4、什么是内部类&#xff1f;5、&和&&的区别&#xff1f;6、String 类可以继承吗&a…...

    2024/4/13 14:02:51
  14. cartographer安装:vmware ubuntu20.04 + noetic

    cartographer安装&#xff1a;vmware ubuntu20.04 noetic 为方便以后使用&#xff0c;在此记录一下自己安装 cartographer的过程。 在安装过程中&#xff0c;参考了以下教程&#xff1a; https://blog.csdn.net/yqziqian2/article/details/118100338 在参考次教程前&#x…...

    2024/4/15 5:19:46
  15. java设计模式-抽象工厂模式

    1.生产工厂的工厂 package com.wuming.factory.abstract1;public class Client {public static void main(String[] args) {System.out.println("小米系列产品");//小米工厂XiaomiFactory xiaomiFactory new XiaomiFactory();IphoneProduct iphoneProduct xiaomiF…...

    2024/5/4 18:34:43
  16. 计算机科学类专升本复习之“C语言rewind和fseek函数的用法“详解(初稿)

    C语言rewind和fseek函数的用法详解(随机读写文件) 前面所讲到的文件读写函数都是顺序读写,即读写文件只能从头开始,依次读写各个数据。 但在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置指针,再进行读写。 这种读写方式称为随机读写,也就是…...

    2024/4/13 14:03:21
  17. 三种按位运算

    按位与运算符&#xff08;&&#xff09; 参加运算的两个数&#xff0c;按二进制位进行“与”运算。 运算规则&#xff1a;只有两个数的二进制同时为1&#xff0c;结果才为1&#xff0c;否则为0。&#xff08;负数按补码形式参加按位与运算&#xff09; 即 0 & 0 0 &a…...

    2024/4/16 22:54:40
  18. python中基本数据类型

    Python3 中有六个标准的数据类型&#xff1a; Number&#xff08;数字&#xff09;String&#xff08;字符串&#xff09;List&#xff08;列表&#xff09;Tuple&#xff08;元组&#xff09;Set&#xff08;集合&#xff09;Dictionary&#xff08;字典&#xff09; import …...

    2024/4/18 13:13:18
  19. 给定m个不重复的字符 [a,b,c,d],以及一个长度为n的字符串tbcacbdata滑动窗口

    题目 给定m个不重复的字符 [a, b, c, d]&#xff0c;以及一个长度为n的字符串tbcacbdata&#xff0c; 问能否在这个字符串中找到一个长度为m的连续子串&#xff0c;使得这个子串刚好由上面m个字符组成&#xff0c;顺序无所谓&#xff0c;返回任意满足条件的一个子串的起始位置…...

    2024/4/13 14:03:31
  20. 8.3 希尔排序(算法实现、性能分析)

    1. 希尔排序2. 第一趟排序3. 第二趟排序4. 第三趟排序5. 算法实现6. 算法性能分析7. 知识总结 1. 希尔排序 2. 第一趟排序 3. 第二趟排序 4. 第三趟排序 5. 算法实现 6. 算法性能分析 7. 知识总结...

    2024/4/19 13:06:14

最新文章

  1. Centos 7.9 配置VNCServer实现远程vnc连接

    文章目录 1、Centos安装图形界面1.1、安装X Windows System图形界面1.2、安装GNOME图形界面 2、VNC SERVER配置2.1、VNC SERVER安装2.2、VNC SERVER配置1&#xff09;创建vnc配置文件2&#xff09;修改配置文件内容3&#xff09;完整配置文件参考 2.3、设置vnc密码2.4、配置防火…...

    2024/5/4 19:04:02
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Weblogic任意文件上传漏洞(CVE-2018-2894)漏洞复现(基于vulhub)

    &#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…...

    2024/5/3 5:52:16
  4. STL--vector有哪些应用场景

    vector 在 C 中是一种非常灵活和强大的容器&#xff0c;适用于多种不同的应用场景。以下是一些常见的应用场景&#xff1a; 1 动态数据集合&#xff1a;当你不确定数据集的大小&#xff0c;或者数据集的大小会随时间变化时&#xff0c;vector 是理想的选择。例如&#xff0c;在…...

    2024/5/3 5:48:45
  5. 2024年04月IDE流行度最新排名

    点击查看最新IDE流行度最新排名&#xff08;每月更新&#xff09; 2024年04月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多&#xff0c;这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…...

    2024/5/4 10:38:10
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/3 23:10:03
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/4 18:20:48
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/4 2:59:34
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57