批量获取微信公众号的粉丝信息,抓取速度提升86%
2023-09-27 14:24:39 时间
有一项目,需要刷新最新的用户信息之后再给部分用户推送消息,之前选择微信的get接口,使用用户openid获取单个用户的信息,然后比对入库,一万个粉丝大概需要30多分钟
比较被动
然后使用批量获取,速度得到极大提升
批量获取用户基本信息
http请求方式: POST https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN
POST数据示例
这里吐槽一下,参数不是标准json,不是标准json,不是标准json,不是标准json,不是标准json,不是标准json,不是标准json,而是数组,返回值也不是表准json
这就要多些好几行代码来包装一下了
首先需要在数据库里拿出一部分用户,然后取openid
List<CustomerWechat> customerWechats = cwd.get100StartById(session, startId);
如果返回值不是空的话
就进行处理
JSONObject[] myList = new JSONObject[customerWechats.size()]; int i = 0; for (CustomerWechat cw : customerWechats) { JSONObject jb = new JSONObject(); jb.put("openid", customerWechats.get(i).getOpenid()); jb.put("lang", "zh_CN"); myList[i] = jb; i++; }
把数据再组合一下
JSONObject jsonObject = new JSONObject(); jsonObject.put("user_list", myList);
然后再从数据库里把接口地址拿出来
ApiWechat api = awd.getApiGetcustomerBatch(session);
然后把token加上
String url = api.getUrl().replace("ACCESS_TOKEN", at.getAccess_token());
然后
发器post等着返回数据就完事儿了
// 通过HttpPost来发送post请求 HttpPost httpPost = new HttpPost(url); String jsonString = jsonObject.toJSONString(); StringEntity entityStr = new StringEntity(jsonString, "UTF-8"); httpPost.setEntity(entityStr); CloseableHttpResponse response = null; CloseableHttpClient httpClient = HttpClients.createDefault(); response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity(); String resp = ""; resp = EntityUtils.toString(entity, "UTF-8"); EntityUtils.consume(entity);//释放资源
然后
把返回值没用的数据都删掉
里边的数据就不管了,都是大家最爱的json
String resArray = resp.substring(resp.indexOf("["), resp.length() - 1);
最后再把处理之后的数据,也就是表准的json了,转换为对象列表,就行了
List<CustomerWechat> customerList = JSONObject.parseArray(resArray, CustomerWechat.class);
相关文章
- Office三件套批量转PDF以及PDF书签读写与加水印
- Delphi中批量把双引号替换为单引号的方法
- csdn 文章批量转换markdown格式下载至本地
- 在 Linux 下将 PNG 和 JPG 批量互转的四种方法
- [转]Mybatis foreach 批量操作
- redis 通配符 批量删除key
- nodejs zip 批量压缩文件夹 按需过滤文件 批量迁徙mv备份 shell bash 命令
- MVC批量更新,可验证并解决集合元素不连续控制器接收不完全的问题
- 某盘帐号批量自动签到
- 《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.21 使用bcp实施批量导入
- 使用sqlplus批量执行脚本的总结
- Python网站导航项目-5.批量抓取导航网站的logo图标
- 微信小程序----团购或秒杀的批量倒计时实现
- 小技巧 之 一步轻松批量修改文件名后缀(不用额外应用或工具)
- shell脚本批量注释
- 电商 微信 批量添加客户3 python版
- 实战!利用MSF批量扫描校园网中含有MS17_010漏洞的主机并入侵