yarn安装库之后卡在puppeteer

Node 库Puppeteer 介绍及使用 Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过协议控制 Chromium 或 Chrome。Puppeteer 默认以模式运行,但是可以通过修改配置文件运行“有头”模式。能做什么?你可以在浏览器中手动执行的绝大多数操作都可以使用 Puppeteer 来完成! 阅读详情

安装后卡在puppeteer:
[-/11] ⠈ waiting...
[-/11] ⠈ waiting...
[11/11] ⠈ puppeteer
[-/11] ⠈ waiting...
[-/11] ⠁ waiting...

解决:

我用的是yarn:

步骤1:

  yarn config set puppeteer_download_host https://npm.taobao.org/mirrors

步骤2:

yarn add puppeteer --ignore-scripts
cd node_modules/puppeteer
yarn exec node install.js // 此处如果不设置第一步淘宝下载源,会卡在下载cromniom,应该是直接去google源下载
记一个puppeteer使用问题Error: Chromium revision is not downloaded. Run “npm install“ or “yarn install“ 1.简介 本地安装后运行,发现没有下载chromium 2.解决 仔细看信息 npm install puppeteer@10.1.0 > puppeteer@10.1.0 install D:\workspace\team\takewalk\TakeWalks-FrontEnd\node_modules\puppeteer > node install.js **INFO** Skipping browser download. "PUPPETEER_SKIP_C.. 阅读详情

相关推荐

数据助力行业发展:BJTU-RAO转向架数据集介绍

BJTU-RAO转向架数据集是完全公开的,何研究人员皆可以通过后文的下载链接免费下载数据,且在标注数据来源的前提下,研究人员可以自由使用BJTU-RAO转向架数据集。因此,聚焦各类列车转向架传动系统在途安全保障新技术研究和新算法开发,实现牵引电机、驱动齿轮箱和轴箱等关键部件的实时状态监测与智能故障诊断,对保障列车安全可靠运行具有重要的现实意义。BJTU-RAO转向架数据集包含51种健康状态的样本,涵盖正常状态、部件级单一故障、部件级复合故障以及系统级关联复合故障,数据量达116GB。

2401_88870554的博客 3498

Puppeteer开发过程中遇到的问题及解决方案

工欲善其事必先利其器,请先检查本机是否安装NodeJS环境以及查阅API: Google官方文档:https://developers.google.com/web/tools/puppeteer API(v12.0.1)文档:https://pptr.dev/#?product=Puppeteer&version=v12.0.1&show=outline 问题:如何处理各种验证码? 解决方案:建议大家去搜索对应的解决方案,Puppeteer并无此类解决方案。 问题:某些网站做了JS防爬检测

m0_67402823的博客 7287

告别手动处理:用 Bruker NSMatlabUtilities 工具箱批量分析 AFM 力曲线数据的实战案例

本文介绍了如何使用 Bruker NSMatlabUtilities 工具箱实现 AFM 力曲线数据的批量分析,解决传统手动处理耗时且易出错的问题。通过实战案例展示工具箱的核心功能,包括数据读取、力曲线分析和可视化,帮助科研人员提升数据处理效率和准确性。

weixin_28362173的博客 213

使用yarn安装puppeteer等问题

处理方式 设置成淘宝镜像 npm config set PUPPETEER_DOWNLOAD_HOST=https://npm.taobao.org/mirrors yarn config set registry https://registry.npm.taobao.org

weixin_43110609的博客 2349

从LLaMA到LLaMA-MoE:轻量级混合专家模型构建与实战指南

混合专家(Mixture-of-Experts, MoE)是一种先进的神经网络架构,其核心原理是通过门控网络动态地为不同输入选择不同的专家子网络进行计算,从而实现模型容量的指数级扩展,同时保持推理时的计算量基本不变。这种稀疏激活的特性赋予了MoE极高的技术价值,使其成为解决大模型训练与推理成本矛盾的关键技术之一,在自然语言处理、多模态学习等场景中展现出巨大潜力。本文聚焦于**LLaMA-MoE**这一具体实践,深入探讨了如何基于成熟的稠密模型(如LLaMA),通过**专家构建**与**持续预训练**两大关键

weixin_28730549的博客 565

蒙特卡洛+概率潮流!基于蒙特卡洛和新能源出力模拟的概率潮流分布程序代码!

最后,导出光照强度、风速、网损和节点电压的概率分布图,并计算了各节点电压和网损的平均值和方差,展示了接入前后的节点电压对比图。在不确定性增加的电力系统中,概率潮流成为含随机因素规划问题的求解前提,可以更加真实地反映电力系统的全面信息。此外,概率潮流还可用于研究风电和光伏发电出力以及电动汽车消耗功率和向电力系统反向供电功率的不确定性对电力系统的影响,发现系统运行中的潜在风险,为系统运行控制提供参考。概率潮流的目的是揭示电网中随机变量对系统的影响,发现电网中的薄弱环节,为规划和调度部门的决策提供有价值的信息。

weixin_48747334的博客 1918

unbuntu安装puppeteer中遇到的问题

在安装puppeteer过程中遇到一些错误,记录一下 首先,因为墙的原因,下载chom内核的时候可能会卡住, 其实加上一条指令就完美解决:   //下载不了内核 要设置下面的变量 //export PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.org 其次可能遇到node install.js错误,可以使用一...

qq_23676873的博客 1313

PCL 利用RANSAC改进的ICP算法

本文介绍了一种基于RANSAC改进的ICP点云配准算法。算法原理部分阐述了在ICP迭代过程中使用RANSAC剔除错误匹配点对的方法。

点云侠的博客 195

npm install 报错 npm ERR! puppeteer@1.20.0 install: `node install.js`

【代码】npm install 报错 npm ERR!

卡尔特斯 3948

Unity 如何使用命令模式

命令模式 游戏中,当你想通过一种通用的方式来存储命令并能够撤消命令时,那么命令模式最有用。 在“示例”中,你将看到一个可以通过GUI按钮移动的简单点。 采取行动后,您可以撤消并重做。我在屏幕上添加了一个简单的OnGUI标签输出,因此您可以看到命令列表,并指出哪个是当前命令。 在此示例中使用了4个类: Command-这是任何命令模式都可以继承的基本结构(抽象类)。您可以在任何项目中使用此类。 MoveCommand-这是从Command类继承的结构,将使用Execute和UnExecute(撤消)。每个移

TxNet 1555

vue3:实现飞书扫码授权登录流程+完整示例源码,用户使用飞书移动端扫描飞书登录二维码进行登录后获取用户信息数据,vue3接入飞书登录系统,支持新跳页显示二维码或div容器里内嵌登录二维码(详细代码)

vue3飞书扫码登录网页,vue3飞书扫码登录网页,vue3接入飞书扫码登录全流程,Vue3在网页中接入飞书二维码SDK,vue3飞书扫码登录网页,实现用户授权登录的流程,Vue3集成飞书前端JSSDK,对接飞书扫码授权,飞书扫码授权,vue3网站集成飞书登录生成二维码,VUE3用户扫码飞书授权登录,飞书开发-网页应用JSSDK鉴权流程,飞书开放平台自建网页应用登录与免登录,vue3接入二维码SDK将飞书登录的二维码嵌入到网页中,pc后台管理系统接入飞书登录,vue3项目中实现扫码登录飞书,Vue飞书免登录

✅ 精选推荐文章 4390

Puppeteer项目中的Yarn安装失败问题分析与解决方案

在使用Puppeteer 23.5.0版本时,部分开发者遇到了Yarn安装失败的问题。错误信息显示在执行`node install.mjs`命令时出现了`progressCallback is not a function`的错误。这个问题主要出现在Linux环境下,使用Yarn 1.22.22作为包管理器时。 ## 错误原因分析 深入分析这个问题,核心原因在于`@puppeteer/brow...

gitblog_00843的博客 487

连接参数详解:Connection Interval, Slave Latency, Supervision Timeout 的协同与调优实战

在低功耗蓝牙(BLE)开发与调试中,Connection Interval(连接间隔)、Slave Latency(从机延迟) 和 Supervision Timeout(监督超时) 是三个核心参数。它们不仅直接影响设备的通信性能、功耗表现和连接稳定性,更是各类技术面试与认证考试的高频考点。本文将从基础概念出发,深入剖析三者的协同机制,结合历年真题解析考点与解题思路,并通过实战案例演示调优方法,快速掌握这一核心知识点。

byte轻骑兵的技术小窝 2761

Puppeteer 安装完全指南:自动下载机制、puppeteer 与 puppeteer-core 的选型及常见坑位排查

本文依据 Puppeteer 官方文档 [docs/guides/installation.md](https://link.gitcode.com/i/d56ab8f3fafa9cd380c9d48e46c1af5c) 展开,围绕「如何把 Puppeteer 装进你的项目」这一主题,覆盖一条命令快速安装、安装期自动下载 Chrome 的底层机制、现代包管理器拦截安装脚本时的处理方案,以及 `pu

gitblog_00096的博客 957

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

解决Puppeteer在Yarn PnP模式下浏览器下载失败的终极方案

你是否曾在使用Yarn PnP(Plug'n'Play)模式时遇到Puppeteer浏览器下载失败的问题?这个常见却棘手的问题往往导致项目无法正常启动。本文将深入分析问题根源,并提供三种经过验证的解决方案,帮助你彻底解决这一难题。读完本文后,你将能够:理解Yarn PnP与Puppeteer缓存机制的冲突原理、掌握环境变量配置技巧、学会自定义缓存目录的正确方法,以及了解如何使用本地浏览器替代自动下...

gitblog_00517的博客 362

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

npm yarn 一起使用报错

yarn 和 npm 的 全局安装位置 和 全局bin位置,最好设置在同一个盘符呢,这样 bin 目录中的 .cmd脚本文件中可以直接生成相对路径。若不在同一个盘符内,则将会生成绝对路径,由于使用了%~dp0\ 标识符,会导致找不到命令指向的模块。另外,如果会使用 npm link 或者 yarn link 时,建议 将所有路径都配置在C盘,因为 link 的全局范围,默认为C盘。

weixin_39559449的博客 2497

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

puppeteer入门_Puppeteer入门

puppeteer入门Browser developer tools provide an amazing array of options for delving under the hood of websites and web apps. These capabilities can be further enhanced and automated by third-party tool...

culh2177的博客 547

Try Puppeteer vs 本地Puppeteer:为什么云端运行是未来趋势?

**Try Puppeteer** 是一个允许开发者在云端运行 Puppeteer 脚本的创新工具,无需在本地配置复杂环境。本文将深入对比云端与本地运行 Puppeteer 的核心差异,揭示为什么云端执行正成为自动化测试和网页 scraping 的首选方案。 ### 🚀 本地Puppeteer的痛点:你是否也曾遇到这些麻烦? 本地运行 Puppeteer 时,开发者常常面临三大挑战: 1.

gitblog_00012的博客 821

Yarn安装依赖卡在Retrying?可能是淘宝镜像地址过期了(附最新配置方法)

本文详细解析了Yarn安装依赖卡在'Retrying'的常见原因,特别是国内网络环境下淘宝镜像地址过期的问题。提供了最新镜像配置方法、主流镜像源对比及高级优化技巧,帮助开发者彻底解决依赖安装卡顿问题,提升前端开发效率。

weixin_30369041的博客 447

Puppeteer 安装后报找不到 Chrome 浏览器(Could not find Chrome)怎么解决?

在 Node.js 项目里执行 `npm i puppeteer` 之后,运行脚本时抛出 `Could not find Chrome (ver. ...).` 错误,这是 Puppeteer 安装与首次使用阶段最常见的报错之一。它的直接原因是安装时应该自动下载的 Chrome 浏览器没有真正下载到本地,而最常见的诱因是包管理器默认拦截了 Puppeteer 的安装脚本。下面的处理方式全部来自 P

gitblog_02703的博客 401

关于puppeteer 报错(Chromium revision is not downloaded. Run "npm install" or "yarn install")

解决方案: 1:跳过自动安装chromiun npm install puppeteer --ignore-scripts 执行完该命令后会提示 :Chromium revision is not downloaded. Run "npm install" or "yarn install" 2:手动安装puppeteer-chromium-resolver 包 npm i...

wangshang1320的博客 7765

在MacOS安装puppeteer

安装node:升级:npm i npm 安装yarn:需要注意先把yarn的流程跑完,特别是package.json 安装puppeteer:yarn add puppeteer 安装完成以后需要重启shell,不然运行提示Chromium revision未安装:node example.js 学习路线: 官网指南 接口文档 转载于:https://www.c...

weixin_30372371的博客 687

Puppeteer 快速上手:安装、浏览器管理与首次自动化实践(源码级解析)

Puppeteer 是一个为 Chrome 和 Firefox 提供高层 JavaScript API 的库,默认以无头(headless,无可见界面)模式运行,通过 DevTools Protocol 或 WebDriver BiDi 两种协议驱动浏览器。本篇基于仓库根目录的 [README.md](https://link.gitcode.com/i/0fed1c70757312f9746ed

gitblog_01013的博客 699

Cypress 官方 @cypress/puppeteer 插件:在测试中用 Puppeteer API 驱动多标签页与跨页操作

`@cypress/puppeteer` 是 Cypress 仓库内的官方实验性插件(public beta),它让你在 Cypress 测试里通过一条 `cy.puppeteer()` 命令调用完整的 Puppeteer 浏览器 API,从而处理多标签页、新窗口等 Cypress 命令体系难以直接覆盖的场景。读完本文,你将掌握它的安装与 TypeScript 配置、浏览器兼容性边界、`setup

gitblog_01401的博客 325

如何用 npx puppeteer browsers install 和 cacheDirectory 管理 Puppeteer 的浏览器下载与缓存目录

安装 `puppeteer` 包时,Puppeteer 会自动下载一个与当前版本配套的 Chrome for Testing(约 170MB macOS / 282MB Linux / 280MB Windows)以及自 v21.6.0 起附带的 `chrome-headless-shell` 二进制文件,默认存放在 `$HOME/.cache/puppeteer`(v19.0.0 起)。但两类情

gitblog_02105的博客 337

Vue3源码 安装依赖时ERROR: Failed to download Chromium r722234 Set “PUPPETEER_SKIP_CHROMIUM_DOWNLOAD“

前言: 在进行Vue3源码学习的时候,安装对应项目依赖时,出现的一个安装依赖问题 由于Vue3使用的是yarn 于是使用 yarn install 进行依赖安装,于是报下述错误 解决方案 //设置淘宝镜像下载 npm config set puppeteer_download_host=https://npm.taobao.org/mirrors yarn install 给我整无语了 ...

wuyxinu的博客 3833
上一篇: Python的冒泡排序算法
下一篇: Yarn的安装和全局配置(源/缓存位置/全局安装位置)
Noobovo
博客等级 码龄11年 57粉丝 59原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Noobovo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值