抖音自动养号脚本+抖音直播控场脚本

news2024/11/18 18:27:17

功能描述

一.抖音功能

1.垂直浏览
2.直播暖场
3.精准引流
4.粉丝留言
5.同城引流
6.取消关注
7.万能引流
8.精准截流
9.访客引流
10.直播间引流
11.视频分享
12.榜单引流
13.搜索引流
14.点赞回访
15.智能引流
16.关注回访

介绍下小红书数据挖掘

搜索关键词,自动搜索相关用户信息,记录并保存,对于寻找博主种草推文的用户应该是个不错的小助手

发福利===放部分源码出来

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

349

350

351

352

353

354

355

356

357

358

359

360

361

362

363

364

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

381

382

383

384

385

386

387

388

389

390

391

392

393

394

395

396

397

398

399

400

401

402

403

404

405

406

407

408

409

410

411

412

413

414

415

416

417

418

419

420

421

422

423

424

425

426

427

428

429

430

431

432

433

434

435

436

437

438

439

440

441

442

443

444

445

446

447

448

449

450

451

452

453

454

455

456

457

458

459

460

461

462

463

464

465

466

467

468

469

470

471

472

473

474

475

476

477

478

479

480

481

482

483

484

485

486

487

488

489

490

491

492

493

494

495

496

497

498

auto.waitFor();

log("-启动-垂直浏览功能");

var startTime=new Date().getTime();

var plList;//评论内容列表

var gzzbNum=0;//记录关注主播数量

var dzslNum=0;//点赞主播数量

var llzpNum=0;//浏览作品数量

var zpgjcList;//关键词

var tlsjTime=5000;//停留观看时间 默认5s

beforRun();

doNext();

endRun();

storage.put("RUN_JS_RUNING",false);//运行结束

log("-停止-垂直浏览功能");

//继续下一步

function doNext(){

    var ifInLiveRoom=checkInLive();//是否在直播间

    if(ifInLiveRoom){

        //直播间里

        zbjRun();

    }else{

        //短视频

        dspRun();

    }

}

//短视频运行

function dspRun(){

    console.warn("浏览短视频");

    console.warn("自定义评论内容:"+DY_czll_plnr);

    while(true){

        llzpNum++;

        var ifContinue=checkGjz();//检测关键字

        if(ifContinue){

            //检测有关键字

            clickGuanzhu();//短视频点赞关注

            clickZan();//短视频点赞关注

            clickPinglun();//短视频评论

            sleep(tlsjTime);//停留浏览时间3s

        }

        //判断是否停止运行脚本

        var isRun=storage.get("RUN_JS_RUNING",false);

        if(!isRun){

            return;//结束

        }

        //检测运行时间

        var endTime=new Date().getTime();

        var runAllTime=(endTime-startTime)/1000;//已经运行秒

        if(runAllTime>DY_czll_lltjsc*60){

            //到达设置时间

            return;

        }

        console.warn("屏幕宽高:"+device.width+","+device.height);

//        swipe(device.width-200, device.height-400, device.width-200100500);//下一条视频

        swipe(device.width/2, device.height/5*4, device.width/2, device.height/5200);//下一条视频

        sleep(1000);

    }

}

//直播间运行

function zbjRun(){

    console.warn("观看直播");

    while(true){

        llzpNum++;

        clickHbFd();//点击领取红包福袋

        var ifContinue=checkZbjGjz();//检测关键字

        if(ifContinue){

            //检测有关键字

            clickZbjPinglun();//直播间评论

            sleep(tlsjTime);//停留浏览时间3s

        }

        //判断是否停止运行脚本

        var isRun=storage.get("RUN_JS_RUNING",false);

        if(!isRun){

            return;//结束

        }

        //检测运行时间

        var endTime=new Date().getTime();

        var runAllTime=(endTime-startTime)/1000;//已经运行秒

        if(runAllTime>DY_czll_lltjsc*60){

            //到达设置时间

            return;

        }

        swipe(device.width-200, device.height-400, device.width-200100500);//下一条视频

        sleep(1000);

    }

}

//运行开始

function beforRun(){

    log("系统提醒:浏览时长"+DY_czll_lltjsc+"分钟");

    if(DY_czll_gbgjcsb){

        log("关闭关键词识别");

    }else{

        if(DY_czll_zpgjc!=null&&DY_czll_zpgjc!=""){

            zpgjcList=DY_czll_zpgjc.split(",");

            log("关键词数量:"+zpgjcList.length);

            for(var i=0;i<zpgjcList.length;i++){

                var gjc=zpgjcList[i];

                log("关键词"+(i+1)+":"+gjc);

            }

        }

    }

}

//运行结束

function endRun(){

    var ifInLiveRoom=checkInLive();//是否在直播间

    var endTime=new Date().getTime();

    log("时间提示:运行"+(endTime-startTime)/1000+"秒");

    if(ifInLiveRoom){

        log("观看直播间:"+llzpNum);

    }else{

        log("浏览作品:"+llzpNum);

        log("点赞作品:"+dzslNum);

        log("关注作品:"+gzzbNum);

    }

}

//校验是否在直播间页面

function checkInLive(){

    var livecommentLab=text("说点什么...").findOne(1000);

    if(livecommentLab==null){

        return false;

    }else{

        return true;

    }

}

//直播间领取红包和福袋

function clickHbFd(){

    var hbmqdLable=text("知道了").findOne(100);

    if(hbmqdLable!=null){

        hbmqdLable.click();

    }

    if(!DY_czll_lqhbfd){

        return;

    }

    sleep(5000);

    var hbfdLayout=className("android.widget.HorizontalScrollView").findOne(2000);

    if(hbfdLayout==null){

        log("系统提示:没有红包或福袋,自动跳过");

        return;

    }

    if(hbfdLayout.childCount()==0){

        log("系统提示:没有红包或福袋,自动跳过");

        return;

    }

    var hbfdFrameLayout=hbfdLayout.child(0);

    if(hbfdFrameLayout.childCount()==0){

        log("系统提示:没有红包或福袋,自动跳过");

        return;

    }

    log("系统提示:检测到红包或福袋");

    for(var i=0;i<hbfdFrameLayout.childCount();i++){

        var hbfdFrameItem=hbfdFrameLayout.child(i);

        if(hbfdFrameItem==null){

            continue;

        }

        hbfdFrameItem.click();

        sleep(2000);

        var ifFd=clickFd(hbfdFrameItem);

        if(ifFd){

            //是福袋

            continue;

        }

        clickHb();

        sleep(2000);

    }

    suijiSleep();

}

//点击的是福袋

function clickFd(hbfdFrameItem){

    var fdView=text("福袋").findOne(1000);

    if(fdView==null){

        return false;

    }

    if("2"==DY_czll_fdhbsz){

        //只领取红包

        log("系统提示:只领取红包,自动关闭福袋");

        click(device.width/2+200, device.height/2-300);

        return false;

    }

    if("android.view.View"!=fdView.className()){

        click(device.width/2+200, device.height/2-300);

        return false;

    }

    var jrfstView=textContains("加入粉丝团").findOne(1000);

    if(jrfstView!=null){

        //需要加入粉丝团

        if("2"==DY_czll_fdlqtj){

            //免费领取的 跳过

            log("系统提示:领取福袋需要加入粉丝团,自动跳过");

            click(device.width/2+200, device.height/2-300);

            return true;

        }

        var jrfstydbLabel=text("加入粉丝团(1抖币)").findOne(1000);

        if(jrfstydbLabel==null){

            log("系统提示:加入粉丝团大于1抖币,自动跳过");

            click(device.width/2+200, device.height/2-300);

            return true;

        }

        jrfstydbLabel.click();

        sleep(2000);

        var czLabel=textContains("立即充值").findOne(1000);

        if(czLabel!=null){

            log("系统提示:抖币余额不足,自动跳过");

            click(device.width/2+200, device.height/2-300);

            sleep(1000);

            click(device.width/2+200, device.height/2-300);

            return true;

        }else{

            log("系统提示:支付1抖币加入粉丝团");

        }

    }

    var qfbplView=text("去发表评论").findOne(1000);

    if(qfbplView==null){

        log("系统提示:未找到参与福袋评论按钮,自动跳过");

        click(device.width/2+200, device.height/2-300);

        return true;

    }

    console.warn("时间限制:"+DY_czll_fdsjxz);

    if("3"!=DY_czll_fdsjxz){

        //少于1分钟或少于两分钟

        var ifLessTime=false;

        var djsTitleLabel=text("倒计时").findOne(1000);

        if(djsTitleLabel!=null){

            var djsParentLayout=djsTitleLabel.parent();

            var djsLabel=djsParentLayout.child(1);

            if(djsLabel!=null){

                var djsTimeStr=djsLabel.text();

                log("系统提示:福袋开奖时间"+djsTimeStr);

                if("1"==DY_czll_fdsjxz){

                    //少于1分钟

                    if(djsTimeStr.indexOf("00:")==0){

                        ifLessTime=false;

                    }else{

                        ifLessTime=true;

                    }

                }else if("2"==DY_czll_fdsjxz){

                    //少于2分钟

                    if(djsTimeStr.indexOf("00:")==0||djsTimeStr.indexOf("01:")==0){

                        ifLessTime=false;

                    }else{

                        ifLessTime=true;

                    }

                }

            }

        }

        if(ifLessTime){

            log("系统提示:开奖时间太长,自动跳过");

            click(device.width/2+200, device.height/2-300);

            return true;

        }

    }

    console.warn("福袋概率设置:"+DY_czll_fdzjgl);

    if("5"!=DY_czll_fdzjgl){

        //中奖概率设置

        var gfdNumLabel=textContains("个福袋").findOne(1000);

        var yzyNumLabel=textContains("人已参与").findOne(1000);

        if(gfdNumLabel!=null&&yzyNumLabel!=null){

            var gfdNumStr=gfdNumLabel.text();

            var yzyNumStr=yzyNumLabel.text();

            log("系统提示:"+gfdNumStr+","+yzyNumStr);

            gfdNumStr=gfdNumStr.slice(0,gfdNumStr.indexOf("个福袋"));

            yzyNumStr=yzyNumStr.slice(0,yzyNumStr.indexOf("人已参与"));

            var gailv=parseInt(parseInt(gfdNumStr)/(parseInt(yzyNumStr)*1.00)*100);

            log("系统提示:中奖概率"+gailv+"%");

            if("1"==DY_czll_fdzjgl){

                //中奖概率大于20

                if(gailv<20){

                    log("系统提示:中奖概率低于20%,自动跳过");

                    click(device.width/2+200, device.height/2-300);

                    return true;

                }

            }else if("2"==DY_czll_fdzjgl){

                //中奖概率大于50

                if(gailv<50){

                    log("系统提示:中奖概率低于50%,自动跳过");

                    click(device.width/2+200, device.height/2-300);

                    return true;

                }

            }else if("3"==DY_czll_fdzjgl){

                //中奖概率大于80

                if(gailv<80){

                    log("系统提示:中奖概率低于80%,自动跳过");

                    click(device.width/2+200, device.height/2-300);

                    return true;

                }

            }else if("4"==DY_czll_fdzjgl){

                //中奖概率大于100

                if(gailv<100){

                    log("系统提示:中奖概率低于100%,自动跳过");

                    click(device.width/2+200, device.height/2-300);

                    return true;

                }

            }

        }

    }

    qfbplView.click();

    var huifuEditView = className("android.widget.EditText").findOne(1000);//找到输入框

    if(huifuEditView!=null){

        var msgStr=huifuEditView.text();

        var sendBtn=desc("发送").findOne();

        sendBtn.click();

        log("评论内容:"+msgStr);

        log("系统提示:已参与福袋抽奖");

        sleep(2000);

        hbfdFrameItem.click();

        var hbmqdLable=text("知道了").findOne();

        if(hbmqdLable!=null){

            suijiSleep();

            hbmqdLable.click();

        }

    }

    return true;

}

//点击的是红包

function clickHb(){

    var closeBtnArr=desc("关闭").find();

    console.warn("关闭按钮的数量:"+closeBtnArr.length);

    var closeBtn=closeBtnArr[closeBtnArr.length-1];

    if(closeBtn==null){

        return;

    }

    var closeViewGroup=closeBtn.parent();

    if("android.view.ViewGroup"!=closeViewGroup.className()){

        console.warn("不是 android.view.ViewGroup");

        console.warn("关闭按钮的位置:"+closeBtn.bounds().centerY());

        if(closeBtn.bounds().centerY()<device.height/2-500){

            //不是弹框的关闭

            return;

        }

        closeBtn.click();

        return;

    }

    if("1"==DY_czll_fdhbsz){

        //只领取福袋

        log("系统提示:只领取福袋,不点击红包");

        closeBtn.click();

        return;

    }

    console.warn("时间限制:"+DY_czll_fdsjxz);

    if("3"!=DY_czll_fdsjxz){

        //少于1分钟或少于两分钟

        var ifLessTime=false;

        var djsLabel=textContains("可抢").findOne(1000);

        if(djsLabel!=null){

            var djsTimeStr=djsLabel.text();

            log("系统提示:福袋开奖时间"+djsTimeStr);

            if("1"==DY_czll_fdsjxz){

                ifLessTime=true;

            }else if("2"==DY_czll_fdsjxz){

                //少于2分钟

                if(djsTimeStr.indexOf("1分")==0){

                    ifLessTime=false;

                }else{

                    ifLessTime=true;

                }

            }

        }

        if(ifLessTime){

            log("系统提示:开奖时间太长,自动跳过");

            closeBtn.click();

            return;

        }

    }

    var hbyqwLabel=text("红包已抢完").findOne(50);

    var hbmqdLable=text("知道了").findOne(50);

    var smlLable=text("手慢了").findOne(50);

    var ckdjsqLabel=text("查看大家手气").findOne(50);

    var hbygqLabel=text("红包已过期").findOne(50);

    while(hbyqwLabel==null&&hbmqdLable==null&&smlLable==null&&ckdjsqLabel==null&&hbygqLabel==null){

        log("系统提示:点击抢红包");

        console.warn("点击位置:"+device.width/2+","+device.height/2);

        click(device.width/2,device.height/2);

        hbyqwLabel=text("红包已抢完").findOne(50);

        hbmqdLable=text("知道了").findOne(50);

        smlLable=text("手慢了").findOne(50);

        ckdjsqLabel=text("查看大家手气").findOne(50);

        hbygqLabel=text("红包已过期").findOne(50);

    }

    suijiSleep();

    closeBtn.click();

}

//短视频关键字校验

function checkGjz(){

    var startCheckTime=new Date().getTime();

    var headImgView=findBtnType(3);

    var textRootLayout=findBtnType(4);

    if(headImgView!=null){

        var nickNameStr=headImgView.desc();

        log("视频发布者:"+nickNameStr);

    }

    var ifCheckHave=checkGjzDetail(textRootLayout);

    var endCheckTime=new Date().getTime();

    var logStr="检测耗时"+(endCheckTime-startCheckTime)/1000+"秒";

    if(ifCheckHave){

        if(!DY_czll_gbgjcsb){

            //开启检测关键词

            logStr="检测到关键字,"+logStr;

            log(logStr);

        }

        //随机停留观看时间

        tlsjTime=parseInt(Math.random()*(DY_czll_llzpsj_big-DY_czll_llzpsj_small))+DY_czll_llzpsj_small;

        tlsjTime=tlsjTime*1000;

        log("停留观看"+tlsjTime/1000+"秒");

    }else{

        logStr="跳过该视频,未检测到关键字,"+logStr;

        log(logStr);

        sleep(2000);

    }

    return ifCheckHave;

}

//短视频点赞

function clickZan(){

    if(DY_czll_pldz){

        var checkItem=findBtnType(2);

        if(checkItem!=null){

            checkItem.click();

            dzslNum++;

            log("点赞数量:"+dzslNum);

            sleep(500);

        }else{

            console.warn("未找到点赞按钮");

        }

    }

}

//直播间关键字

function checkZbjGjz(){

    var startCheckTime=new Date().getTime();

    var nickNameView=findZbjBtnType(1);

    var textRootLayout=findZbjBtnType(2);

    if(nickNameView!=null){

        var nickNameStr=nickNameView.text();

        log("直播者:"+nickNameStr);

    }

    var ifCheckHave=checkGjzDetail(textRootLayout);

    var endCheckTime=new Date().getTime();

    var logStr="检测耗时"+(endCheckTime-startCheckTime)/1000+"秒";

    if(ifCheckHave){

        if(!DY_czll_gbgjcsb){

            //开启检测关键词

            logStr="检测到关键字,"+logStr;

            log(logStr);

        }

        //随机停留观看时间

        tlsjTime=parseInt(Math.random()*(DY_czll_llzpsj_big-DY_czll_llzpsj_small))+DY_czll_llzpsj_small;

        tlsjTime=tlsjTime*1000;

        log("停留观看"+tlsjTime/1000+"秒");

    }else{

        logStr="跳过该视频,未检测到关键字,"+logStr;

        log(logStr);

        sleep(2000);

    }

    return ifCheckHave;

}

//直播间评论

function clickZbjPinglun(){

    if(DY_czll_kqnc){

        suijiSleep();

        if(1==DY_czll_ncfs){

            //自定义评论

            if(DY_czll_plnr==null||DY_czll_plnr==""){

                return;

            }

        }

        var checkItem=text("说点什么...").findOne(1000);//获取评论按钮

        if(checkItem!=null){

            var msgStr=DY_czll_plnr;

            if(1!=DY_czll_ncfs){

            }

            checkItem.parent().click();

            sleep(1000);

            var huifuEditView = className("android.widget.EditText").findOne(1000);//找到输入框

            if(huifuEditView!=null){

                huifuEditView.setText(msgStr);

                var sendBtn=desc("发送").findOne();

                sendBtn.click();

                log("评论内容:"+msgStr);

                sleep(500);

            }

        }else{

            console.warn("未找到评论按钮");

        }

  }

}

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

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

相关文章

uml简单用例图怎么画(要素,文字形式)

参与者&#xff08;三类&#xff09;&#xff1a;人&#xff0c;外部系统&#xff0c;设备 用例&#xff1a; 系统外部可见的用例单元 表示前俩的关系&#xff1a;带箭头的实线&#xff08;参与者1——用例1&#xff09; 【实线为了观看我标红了&#xff0c;实际没有的】 1.i…

vue实现一个简单导航栏

Vue之简单导航栏 在vue中&#xff0c;想要实现导航栏的功能&#xff0c;除了用传统的a标签以外&#xff0c;还可以使用路由——vue-router来实现&#xff0c;前端小白在此记录一下学习过程&#xff08;默认已经搭建好vue的脚手架环境&#xff09;&#xff1a; 建立项目并安装…

【数据结构-字符串 四】【字符串识别】字符串转为整数、比较版本号

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【字符串转换】&#xff0c;使用【字符串】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

Andriod学习笔记(一)

写在前面的话 App开发的编程语言Java和KotlinXML App连接的数据库App工程目录结构模块级别的编译配置文件清单文件 界面显示与逻辑处理 安卓是一种基于Linux内核的自由及开放源代码的操作系统&#xff0c;主要使用于移动设备。 Mininum SDK表示安卓该版本以上的设备都可以运行该…

Vue计算属性的使用

当我们想要通过data中运算得到一个新的数据时&#xff0c;我们就可以使用计算属性。比如&#xff1a;data里的单价price和数量number可以相乘计算总价sum&#xff0c;这个sum我们就称为计算属性。 计算属性的语法格式&#xff1a; computed:{ 计算属性名称 ( ) { return 计算…

LAS Spark 在 TPC-DS 的优化揭秘

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 文章主要介绍了火山引擎湖仓一体分析服务 LAS Spark&#xff08;下文以 LAS Spark 指代&#xff09;在 TPC-DS 上的性能突破与优化策略。TPC-DS 是一个模拟复杂数据…

4、在 CentOS 8 系统上安装 pgAdmin 4

pgAdmin 4 是一个开源的数据库管理工具&#xff0c;专门用于管理和操作 PostgreSQL 数据库系统。它提供了一个图形用户界面&#xff08;GUI&#xff09;&#xff0c;使用户能够轻松地连接到 PostgreSQL 数据库实例&#xff0c;执行 SQL 查询&#xff0c;管理数据库对象&#xf…

网络拓扑自动扫描工具

topology-scanner Topology-Scanner是WeOps团队免费开放的一个网络拓扑自动扫描模块&#xff0c;可以自动发现网络设备的类型、网络设备之间的互联 使用方式 java -jar ./topology-scanner.jar --config_path./config/ 配置说明 1. 拓扑发现请求参数文件(request.json) i…

Web3 新手攻略:9 个不可或缺的 APP 助力你踏入加密领域

Web3世界充满了无限机遇&#xff0c;但要掌握它&#xff0c;您需要合适的工具&#xfffd;&#xfffd;&#xfffd;。今天&#xff0c;我将为您介绍9款Web3必备APP&#xff0c;涵盖钱包、DEX、和工具三大类别。而且&#xff0c;我要特别强烈推荐一个强大的钱包——Bitget Wall…

基于java+vue+springboot的家庭理财记账信息网站

运行环境 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven 项目介绍 在这科技…

Bitxhub跨链平台

BitXHub跨链平台 跨链系统架构 过程 在跨链合约中调用统一写好的Broker合约Broker合约抛出事件由Plugin捕获到封装成平台统一的数据结构提交到中继链中目的链的跨链网关从中继链中同步IBTP数据结构网关将该数据结构通过Plugin提交到目的链 中继链体系架构 中继链的模块和流程…

【Vue面试题十七】、你知道vue中key的原理吗?说说你对它的理解

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;你知道vue中key的原理吗…

10.本项目的简单介绍及所用工具

本项目的简单介绍及所用工具 本项目的层次架构适合初学者或者有一些基础的同学&#xff0c;项目整体简单明了&#xff0c;有着非常严谨的逻辑思维&#xff0c;并且在前面文章中也讲了一些项目中所需要的软件安装配置以及一些前置的在本项目中所需要的java基础知识。 项目名称 …

TCPUDP

TCP 1.什么是TCP TCP是处于运输层的通信协议&#xff0c;该协议能够实现数据的可靠性传输。 2.TCP报文格式 源端口和目的端口&#xff1a;各占两个字节&#xff0c;发送进程的端口和接收进程的端口号。 序号&#xff1a;占4个字节,序号如果增加到溢出&#xff0c;则下一个序…

几种预训练模型微调方法和peft包的使用介绍

文章目录 微调方法Lora(在旁边添加训练参数)Adapter&#xff08;在前面添加训练参数&#xff09;Prefix-tuning&#xff08;在中间添加训练参数&#xff09;Prompt tuning PEFTPEFT 使用PeftConfigPeftModel保存和加载模型 微调方法 现流行的微调方法有&#xff1a;Lora,promp…

【MySql】5- 实践篇(三)

文章目录 1. 日志和索引问题1. 日志相关问题1.1 两阶段提交 2. 业务设计相关问题 2. order by工作原理2.1 全字段排序2.2 rowid 排序2.3 全字段排序 VS rowid 排序 3. 正确显示随机消息3.1 内存临时表3.2 磁盘临时表3.3 随机排序方法 1. 日志和索引问题 1. 日志相关问题 1.1 …

NodeJs内置模块child_process

内置模块child_process子进程 写在前面 子进程是Nodejs的核心Api&#xff0c;如果你会shell命令&#xff0c;它会有非常大的帮助&#xff0c;或者你喜欢编写前端工程化工具之类&#xff0c;它也有很大的用处&#xff0c;以及处理CPU密集型应用。 创建子进程 Nodejs创建子进…

如何处理用户输入验证和表单提交?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

PCL点云处理之点云重建为Mesh模型并保存到PLY文件 ---方法二 (二百一十一)

PCL点云处理之点云重建为Mesh模型并保存到PLY文件 ---方法二 (二百一十一) 一、算法介绍二、算法实现1.代码2.效果一、算法介绍 离散点云重建为mesh网格模型,并保存到PLY文件中,用于其他软件打开查看,代码非常简短,复制粘贴即可迅速上手使用,具体参数根据自己的点云数据…

Unity可视化Shader工具ASE介绍——5、ASE快捷键和常用节点介绍

大家好&#xff0c;我是阿赵。   继续介绍Unity可视化Shader插件ASE。这次来说一些常用节点的快捷键&#xff0c;顺便介绍一些常用的节点。   用过UE引擎的朋友可能会发现&#xff0c;ASE的整体用法和UE的材质节点编辑器非常的像&#xff0c;甚至连很多节点的快捷键都和UE的…