Java 爬虫-谷歌商店(Google play)--应用的版本号

Java 爬取GooglePlay数据 好久没有用Java进行数据抓取操作了,之前还是在2018年那个夏天,不过这次又遇到相同的需求了,所以就把整个过程记录下来,以后遇到了同样的情况就比较好操作。内容绝对干货,包括如何解析,如何爬取,如何解决遇到的问题。 阅读详情

代码

HuToolHttp 这个工具类 在爬下载量的文章里

 public static String getLastVersion(String packageName, String proxyType, String host, int port, String proxyUser, String proxyPass) {
        String location = onlineLocation(packageName, proxyType, host, port, proxyUser, proxyPass);
        if (location == null) {
            return null;
        }
        HttpResponse response = null;
        for (int i = 0; response == null && i < 5; i++) {
            response = HuToolHttp.get("https://apkcombo.com" + location
                    , new HashMap<String, String>() {{
                        put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9");
                        put("Accept-Language", "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,pt;q=0.5");
                        put("cache-control", "max-age=0");
                        put("referer", "https://apkcombo.com" + location + "/download/apk");
                        put("sec-ch-ua", "\"Chromium\";v=\"104\", \" Not A;Brand\";v=\"99\", \"Google Chrome\";v=\"104\"");
                        put("sec-ch-ua-mobile", "?0");
                        put("sec-ch-ua-platform", "\"Windows\"");
                        put("Sec-Fetch-Dest", "document");
                        put("Sec-Fetch-Mode", "navigate");
                        put("Sec-Fetch-Site", "same-origin");
                        put("sec-fetch-user", "?1");
                        put("upgrade-insecure-requests", "1");
                        put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36");
                    }}, proxyType, host, port, proxyUser, proxyPass, 3000);
        }
        if (response != null && response.isOk()) {
            String reg = "<div class=\"version\">.*</div>";
            Pattern pattern = Pattern.compile(reg);
            Matcher matcher = pattern.matcher(response.body());
            if (matcher.find()) {
                String result = matcher.group().replaceAll("<div class=\"version\">", "").replaceAll("</div>", "");
//                    log.info("获取最新版本 包名:" + packageName + ";版本:" + result);
                return result;
            }
        }
        return null;
    }
Gemini安卓官方APK下载与无捆绑验证全指南 Gemini作为谷歌推出的原生AI助手,其安卓端尚未上架Google Play,用户需通过官方APK手动安装实现深度集成。理解APK签名机制、权限声明规范及native库依赖关系,是保障应用安全与功能完整的核心基础。技术价值在于规避第三方捆绑风险,确保模型调用直连generativelanguage.googleapis.com等可信域名,维持低延迟(≤1.2秒)与Chrome页签图标联动等关键体验。典型应用场景包括安卓开发课程实践、Unity项目AI能力嵌入、以及普通用户对纯净AI交互的诉求。本文聚焦‘G 阅读详情

相关推荐

Flutter实战痛点解析:包体积、原生交互与动态化挑战

跨平台移动开发框架通过单一代码库实现多端部署,其核心原理在于利用自绘引擎与响应式UI架构,在保证性能与一致性的同时,也带来了独特的技术挑战。在工程实践中,包体积优化与原生平台能力集成成为关键考量。Flutter作为主流框架,其AOT编译模式虽带来高性能,但也导致安装包基础体积较大,且动态更新能力受限。通过精细化资源管理、Split APK与平台通道封装等策略,可在一定程度上缓解这些问题。本文聚焦Flutter在包体积膨胀、原生交互复杂性及动态化支持等实际开发中的高频痛点,为技术选型与性能优化提供实践参考。

weixin_30607659的博客 415

react native通过cheerio抓取google play商店里面app的版本号

cheerio 快速、灵活、精益的实现了为服务器设计的核心jquery 安装 yarn add cheerio@0.22.0 yarn add events stream buffer 使用cheerio获取版本号 async getVersion(){ let appid = "你app的applicationId"; const response = await fetch(`https://play.google.com/store/apps/details?id=${appid}&

weixin_41891519的博客 769

安卓手机自动化测试:基于Termux与uiautomator2的环境搭建与实战

移动端自动化测试是提升应用质量和开发效率的关键技术,其核心原理是通过脚本模拟用户操作,对应用界面进行功能性验证。在技术实现上,除了传统的基于电脑的测试方案,利用安卓设备自身构建测试环境正成为一种新兴的工程实践。这种方法的价值在于实现了测试任务的去中心化与低成本部署,特别适用于资源受限、需要移动办公或构建分布式测试集群的场景。具体实践中,可以借助Termux提供的Linux环境与uiautomator2这一Python测试库,在单部安卓手机上搭建完整的自动化测试执行节点,从而独立完成UI操作、回归测试等任务,

weixin_34198453的博客 399

Android :从Google play 获取当前APP 版本号

APP自动更新 可以从服务器下载更新,也可以跳转商店更新,今天说的是如何获取当前应用在Google play中的最新版本和本低版本比较是否需要更新。 1 添加依赖 “”” ...

androidzhuyongqi的博客 1万+

GooglePlay Store App 版本更新判断

需要添加implementation 'org.jsoup:jsoup:1.12.1' package com.unity3d.player; import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager;.

bingheliefeng的专栏 2875

python爬虫 通过包名爬取apkpure内apk

#coding=utf-8 import logging import requests import re import urllib import sys import socket sys.path.append("..") socket.setdefaulttimeout(30) from utils.utils import PhoneUtil from bs4 import Beaut...

TesterDing的博客 2366

google play 爬虫项目

想要爬取google play的数据。 首先google play没有提供任何api。 那么仍想获取数据有以下两种方法: 1.爬web端googleplay的数据; 比较简单。 已有项目:https://github.com/facundoolano/google-play-scraper 亲测可用   2.api方式,直接与google server移动端通讯; 有两个项目: ...

u010900754的专栏 8816

GooglePlayReviewScraper

GooglePlayReviewScraper GooglePlayReviewScraper 是一个基于 Java 的命令行工具,用于提取在 Google Play 商店中发布的应用程序的公开评论。 结果将写入 [filename] 中指定的 csv 文件。 为了获取评论,使用了 Play 商店的公开但未记录的API。 无法保证此 api 保持不变,甚至将来也可用。 用法 下载并运行以下命令 java -jar google_play_review_scraper.jar [android-id] [start] [end] [fil] [lang] 默认值 所有参数都是可选的,如果没有在 cli 上设置参数,则使用默认值。 [android-id] = "com.google.android.apps.maps" [start] = 0 [end] = 5 [file] =

快速提高Android开发效率的Web工具

快速提高Android开发效率的Web工具 转自:http://droidyue.com/blog/2014/08/03/great-web-tools-for-android-development/ 在Google的广大支持下,便捷开发Android程序的Native工具层出不穷。其实Android开发涉及到的范围也不小,一些Web工具有时候也会带来事半功倍的效果。有些甚至是一些...

weixin_30294295的博客 88

GooglePlayCrawler:Google Play 的爬虫。 代码为Java编写,为人族编码测试编写

谷歌游戏爬虫 Google Play 的爬虫。 代码为Java编写,为人族编码测试编写。 添加 HTML 解析器 编写从 google play 中提取内容的代码: : 用SQLite编写dao和数据库访问代码 编写一个报告类来显示结果。 对“显示更多”按钮的操作进行逆向工程。 -> 发送帖子数据的“开始”和“编号”字段。 去做: 确定“列表结束”的标志。 似乎 top sell_* 列表中的项目数与 600 挂钩。 对“下一个评论页面”的操作进行逆向工程网址可能是和帖子数据是:reviewType 0, pageNum 2, id : package id, reviewSortOrder: 2 重构为多线程模型以提高爬行速度。 如何运行: 在执行程序之前,您必须从站点制作认证文件。 连接站点并查看列表。 从网络浏览器中提取认证。 我已将文件保存在资源文件夹中并

python爬虫,爬取三个市场的apk

三只python爬虫,可以爬取三个市场最新apk的爬虫;分别是豌豆荚、安卓市场、华为应用商店。

提高Android开发效率的9个Web工具

关注微信号:javalearns   随时随地学Java 或扫一扫 随时随地学Java 在Google的广大支持下,便捷开发Android程序的Native工具层出不穷。其实Android开发涉及到的范围也不小,一些Web工具有时候也会带来事半功倍的效果。有些甚至是一些native应用无法做到的。本文,将简单列举一下本人正在使用的一些工具,当然也会

195

超详细的YOLOv8项目组成解析:一站式指南了解其架构与组件

最近的更新是关于“Segment ONNX Runtime example”的,意味着它添加了对ONNX运行时的支持,特别是针对模型分割功能的支持。这些文件和文件夹共同工作,以确保 YOLOv8 的文档是全面的、多语言的,并且始终保持最新。这些示例涵盖了从基本的对象检测到更复杂的图像分割和视频处理任务,为开发者提供了丰富的学习资源和应用指导。最近的更新也是关于 ONNX 运行时示例。这些文件夹共同构成了 YOLOv8 的基础框架,从数据处理和模型配置到实际的训练和推理引擎,以及实用工具和高级功能的实现。

CDBmax的博客 1万+

Android开发必看-快速提高 Android 开发效率的 Web 工具

Android开发必看-快速提高 Android 开发效率的 Web 工具 本文摘自同行说用户“Alex”分享的文章,原文链接:http://droidyue.com/blog/2014/08/03/great-web-tools-for-android-development/?comefrom=http://blogread.cn/news/,如涉及版权问题请及时联系小编! 在Google...

weixin_30361641的博客 161

Delphi 13 Beta初体验:手把手教你安装RAD Studio Ganymede,并实测新条件运算符

本文详细介绍了Delphi 13 Beta(代号Ganymede)的安装步骤和新特性,重点解析了新增的条件运算符语法。通过实测对比,展示了64位IDE的性能提升和新语法在代码简洁性上的优势,为开发者提供了从安装到实战的完整指南。

weixin_30399821的博客 205

Playwright与MCP协议结合:AI驱动的智能Web自动化测试实践

Web自动化测试是现代软件开发流程中保障产品质量的关键环节,其核心原理是通过程序模拟用户操作,对Web应用进行功能验证。传统自动化测试工具如Selenium和Playwright虽然提供了强大的API,但脚本编写和维护仍需较高的编程技能。随着AI技术的发展,智能测试成为新的趋势,它通过自然语言理解和自动化执行,显著降低了测试创建门槛。Model Context Protocol(MCP)作为一种连接AI模型与外部工具的开放协议,为自动化测试带来了“智能大脑”。通过将MCP与Playwright结合,测试人员

aoe41606的博客 604

制作一个谷歌浏览器插件,实现网页数据爬虫

浏览器插件,基于浏览器的原有功能,另外增加新功能的工具,是可定制浏览体验的小型软件程序,让用户可以根据个人需要或偏好来定制浏览器。如拦截网页中的广告、划词翻译、倍速视频等等。Chrome、edge等浏览器中都有专门的插件下载商店。 受某些原因限制,Chrome服务并不能正常访问这里提供几个常用的浏览器插件下载地址:Chrome插件,谷歌浏览器插件下载,chrome谷歌商店插件crx应用推荐与下载-扩展迷Chrome插件,Chrome商店,谷歌浏览器插件下载,谷歌商店 - Chrome插件网极简插件_Chro

weixin_69999177的博客 1万+

FANUC机器人PROFINET通讯方式组态

6 然后对模块进行命名及更改IP地址,点击“Network Detection”,进行扫描,会生成下图,双击商科模块会生成下边的对话框,对模块进行命名及更改IP地址,在“Permanent Name”处点对勾,完成后点击“Apply Name及Apply”进行命名。此处注意,上图左上在线在不了,网络扫描处上面也灰色的,扫描不了。5双击abcc-prt-2-port RT(FW1.13),生成下面图标,在右边点击1、2把原来内容删掉,从新在左侧加载 ,使1、2是输出,3、4为输入,完成后点击OK。

dxs93的博客 8428

获取谷歌Play 里APP的版本号

谷歌Play没有提供Api来获取App的版本号。 但是有个 https://play.google.com/store/apps/details?id=com.xxx.xxx,id是包名。 那就只能用Jsoup来解析网页,从而获取谷歌Play展示的版本号,Jsoup 的 jar包下载地址https://jsoup.org/download public class CheckVersion...

忒不靠谱儿 7091

【HDL系列】除法器(3)——基2 SRT算法

目录 一、除法表示 二、数字递归算法基础公式 三、QDS(Quotient Digit Selection)函数 四、基2 SRT算法 一、除法表示 除法被定义如下: 其中,x是被除数,d是除数,q是商,rem是余数。 商的精度由ulp(unit of last position)来决定: 如果ulp=1, 商q则是整数; 如果ulp=r^(-n),n是商数个数,r是所有输入操作数的基,此时商为小数。 二、数字递归算法基础公式 在使用数字递归算法(Digit Re...

纸上谈芯的专栏 8155

【计算机组成原理】课程设计四:控制器设计(二)

本文主要是介绍了计算机组成原理课程设计四其二,即控制器设计(二),属于计算机课程设计专栏

superiony的博客 1429

如何爬取google应用商店的应用分类呢?

可以爬取应用的分类,但是感觉稳定哈。可能是国内VPN不稳定,且爬虫很费时间,感觉跑完也需要好几小时以上哈。我家公司没有自己的应用商店,故应用类型需要自己爬虫生成数据库,供后续代码查询实现了。执行后可以看到开始进行Google 应用商店的应用分类可视化爬虫。

苏法迪的专栏 608

基于simulink的多能源系统协同控制的复杂场景实例:氢燃料电池+锂电池混合动力电动汽车能量管理仿真

本文介绍了基于Simulink的氢燃料电池与锂电池混合动力电动汽车能量管理系统的建模与仿真方法。系统包含驾驶循环输入、氢燃料电池、锂电池、能量管理和电机驱动等模块,通过Simulink实现各模块的协同控制。文章详细说明了从模型创建到性能评估的完整流程,包括驾驶循环输入设置、燃料电池和锂电池子系统建模、能量管理策略设计等关键步骤。该仿真模型可验证不同工况下的系统响应和能量利用效率,为优化混合动力汽车的能量管理策略提供有效工具。通过引入更复杂的物理细节和环境因素,可进一步提升模型的实用性和准确性。

xiaoheshang_123的博客 368

【Java】java获取exe文件版本(跨系统版本)

exe文件版本一般用于版本管理和客户版本更新,对exe右键->属性,选择版本就能看见。如下图   如果需要再windows上使用java读取exe文件版本,推荐使用jna.jar。本jar包可以调用本地c/c++类库,非常方便就能获取到exe文件版本。但如果是在其他系统上,那就没法用了,因为本地根本就没有此类库。   跨系统读取exe文件版本其实想法很简单,版本号就在文件里,去读文件不就行

行路中 3695

10万+字超硬核 机器学习 笔记(面试八股)

10w字总结面试中可能用到的机器学习八股和常用算法,包括感知机(Perceptron)、多层感知机(MLP, Multi-Layer Perceptron)、支持向量机(SVM, Support Vector Machine)、K 最近邻(KNN, K-Nearest Neighbors)、朴素贝叶斯(Naive Bayes)、决策树(Decision Tree)、随机森林(Random Forest)、Bagging、Boosting、GBDT、XGBoos、LightGBM等。

haopinglianlian的博客 4658

深度学习工具包 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")

Java调试谷歌PC浏览器,控制操作网页

/用户数据文件夹,随便设置,不能没有。设置里 或者 访问:chrome://version/公共配置抽象类: 实现公共方法,提供子类启动入口。

学习使我快乐_玉祥 2388

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 使用Hutool的SystemTimer做延时消息处理
下一篇: 《抖音支付》担保支付-预收款
pywanggui
博客等级 码龄12年 6粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

pywanggui

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

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

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

打赏作者

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

抵扣说明:

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

余额充值