当前位置: 首页 > news >正文

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

功能描述

一.抖音功能

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("未找到评论按钮");

        }

  }

}

相关文章:

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

功能描述 一.抖音功能 1.垂直浏览 2.直播暖场 3.精准引流 4.粉丝留言 5.同城引流 6.取消关注 7.万能引流 8.精准截流 9.访客引流 10.直播间引流 11.视频分享 12.榜单引流 13.搜索引流 14.点赞回访 15.智能引流 16.关注回访 介绍下小红书数据挖掘 搜索关键词&…...

uvm中transaction的response和id的解读

在公司写代码的时候发现前辈有一段这样的代码&#xff1a; ....//其他transaction uvm_create(trans);........ uvm_send(trans); tmp_id trans.get_transaction_id(); get_response(rsp,tmp_id); 如果前面有其他transaction&#xff0c;这段代码里的get_response不带id的话…...

第四节(1):EXCEL中判断一个WORD文件是否被打开

《VBA信息获取与处理》教程(10178984)是我推出第六套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。这部教程给大家讲解的内容有&#xff1a;跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网…...

java.util.concurrent.locks.Condition详解

Condition翻译成中文是“条件”&#xff0c;一般我们称其为条件变量&#xff0c;每一个Condition对象都通过链表保存了一个队列&#xff0c;我们称之为条件队列。 当然了&#xff0c;这里所说的Condition对象一般指的是Condition接口的实现类ConditionObject&#xff0c;比如我…...

选择适合变更管理的产品开发工具的要点和建议

什么是变更管理&#xff1f; 变更管理是指导组织改进的学科。由于可观察到的行为变化&#xff0c;它会导致永久性变化。它确保您的组织以彻底、有序和可持续的方式学习和改进。成功的改进项目需要个人和团队保持一致&#xff0c;他们有共同的愿景&#xff0c;他们知道如何定义…...

小程序 词云图 echarts-for-weixin-wordcloud

GitHub - clydee-geng/echarts-for-weixin-wordcloud: echarts词云微信小程序版 这个是适配与小程序版的词云图&#xff0c;之前有找到ucharts来代替&#xff0c;但是ucharts的词云图功能有两个缺点&#xff1a;1.无法根据值的大小显示词云图的大小&#xff1b;2.显示的顺序是…...

VScode配置Jupyter

环境 安装步骤 1、插件安装 2、更改pip加速源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 参考&#xff1a;vscode python配置pip源 ​​​​​​​ 【Python学习】Day-00 Python安装、VScode安装、pip命令、镜像源配置、虚拟环境 3、建…...

java模拟GPT流式问答

流式请求gpt并且流式推送相关前端页面 1&#xff09;java流式获取gpt答案 1、读取文件流的方式 使用post请求数据&#xff0c;由于gpt是eventsource的方式返回数据&#xff0c;所以格式是data&#xff1a;&#xff0c;需要手动替换一下值 /** org.apache.http.client.metho…...

【好玩】如何在github主页放一条贪吃蛇

前言 &#x1f34a;缘由 github放小蛇&#xff0c;就问你烧不烧 起因看到大佬github上有一条贪吃蛇扭来扭去&#xff0c;觉得好玩&#xff0c;遂给大家分享一下本狗的玩蛇历程 &#x1f95d;成果初展 贪吃蛇 &#x1f3af;主要目标 实现3大重点 1. github设置主页 2. git…...

顶顶通ASR安装配置说明

联系顶顶通申请Asrproxy授权&#xff0c;勾选asrserver模块。 下载语音识别模型 链接&#xff1a;https://pan.baidu.com/s/1IuDkDeytZOqf7tAbIb6h1Q 提取码&#xff1a;6vg6 安装asrproxy到/ddt/asrproxy,模型解压到 /ddt/asrproxy/model 对接mod_vad asrproxy.json 配置如…...

VMware和别的服务器 ,组建局域网那些事 。

利用VMware &#xff0c;实现组件局域网、有可能会受限于WiFi&#xff08;路由器&#xff09; 。 通常不会&#xff0c;除非做了网关设置 相关知识&#xff1a; 禁用局域网隔离&#xff08;LAN Isolation&#xff09;&#xff1a; 某些路由器提供了一个选项&#xff0c;允许您禁…...

自监督DINO论文笔记

论文名称&#xff1a;Emerging Properties in Self-Supervised Vision Transformers 发表时间&#xff1a;CVPR2021 作者及组织&#xff1a; Facebook AI Research GitHub&#xff1a;https://github.com/facebookresearch/dino/tree/main 问题与贡献 作者认为self-supervise…...

计算机视觉: 基于隐式BRDF自编码器的文生三维技术

论文链接: MATLABER: Material-Aware Text-to-3D via LAtent BRDF auto-EncodeR 背景 得益扩散模型和大量的text - image 成对的图片&#xff0c; 现在文生2D的模型已经比较成熟的框架和模型&#xff0c;主流的技术比如说stable diffusion 和 midjourney 以及工业领域runway 等…...

分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测

分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测 目录 分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现KOA-CNN-BiLST…...

Java队列相关面试题

ArrayBlockingQueue 1、ArrayBlockingQueue是什么&#xff1f;它与LinkedList和LinkedBlockingQueue有何区别&#xff1f; ArrayBlockingQueue是一个基于数组的有界阻塞队列&#xff0c;可以在队列的两端进行插入和删除操作。 与LinkedList不同&#xff0c;ArrayBlockingQueu…...

水库大坝除险加固安全监测系统解决方案

一、系统背景 为贯彻落实《办公厅关于切实加强水库除险加固和运行管护工作的通知》&#xff08;〔2021〕8号&#xff09;要求&#xff0c;完成“十四五”小型病险水库除险加固、雨水情测报和大坝安全监测设施建设任务&#xff0c;规范项目管理&#xff0c;消除安全隐患&#xf…...

android native C++编程实现数据库加密sqlcipher

sqlcipher是sqlite的加版本&#xff0c;分为免费版和收费版。 这里研究的是开源的免费版 https://github.com/sqlcipher/sqlcipher Android码源默认提供了sqlite的native&#xff0c;jni和java版本&#xff0c;但没有提供sqlcipher&#xff0c;开发用到需要自己添加。 sqlc…...

第五节 C++ 循环结构(算法)

文章目录 前言介绍1. for 语句1.1 语法结构1.2 语法流程的执行过程1.2.1 案例 1:循环的正序输入和倒序输入1.2.2 案例2 : 求1~n的平方数1.2.3 案例 3: 求输入a和b,求a~b区间数. 1.3 for 循环案例练习1.3.1 求最大值与最小值1.3.2 计算奇数和和偶数和1.3.3 计算平均气温与最高气…...

接口与抽象类的区别

a、抽象类不能被实例化只能被继承&#xff1b;b、包含抽象方法的一定是抽象类&#xff0c;但是抽象类不一定含有抽象方法&#xff1b;c、抽象类中的抽象方法的修饰符只能为public或者protected&#xff0c;默认为public&#xff1b;d、一个子类继承一个抽象类&#xff0c;则子类…...

短视频账号矩阵系统源码saas===独立部署

前言&#xff1a; 短视频账号矩阵是指在不同的短视频平台上&#xff0c;一个个人或企业所拥有的账号数量和分布情况。由于不同的短视频平台受众人群和内容类型等因素不同&#xff0c;因此拥有更多账号可以在更广泛的受众中传播内容&#xff0c;提高曝光度和流量。短视频账号矩阵…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...