精品课程网站怎么做,怎样才能建一个网站,科技有限公司网站,优化seo网站文章目录 背景实现是否下架预警评分 总的工具类,测试 背景
在谷歌上面发布包,有时候要看看评分,有时候会因为总总原因被下架,希望后台能够对评分进行预警,和下架预警
实现
测试地址: https://play.google.com/store/apps/details?idcom.tencent.mm 通过jsoup解析页面,然后获… 文章目录 背景实现是否下架预警评分 总的工具类,测试 背景
在谷歌上面发布包,有时候要看看评分,有时候会因为总总原因被下架,希望后台能够对评分进行预警,和下架预警
实现
测试地址: https://play.google.com/store/apps/details?idcom.tencent.mm 通过jsoup解析页面,然后获取评分; 这是获取评分的:
而判断包是否下架就直接判断返回的code码是否大于300,就算作下架了;
是否下架预警
public static void offline(String url) {// 1.解析网页(jsoup 解析返回的对象是浏览器Document对象)HttpResponse response null;try {response getHttpResponse(url);if (response.getStatusLine().getStatusCode() 300) {// 下架通知log.error(谷歌App检测下架: {} , url);}log.error(谷歌App检测下架: code码{} , response.getStatusLine().getStatusCode());} catch (Exception e) {log.error(谷歌App检测下架!!!url:{},异常:{}, url, e);//throw new RuntimeException(e);} finally {if (Objects.nonNull(response)) {try {EntityUtils.consume(response.getEntity());} catch (IOException e) {//throw new RuntimeException(e);}}}}评分
public static Integer score(String url) {// 1.解析网页(jsoup 解析返回的对象是浏览器Document对象)HttpResponse response null;try {response getHttpResponse(url);if (response.getStatusLine().getStatusCode() 300) {Document document Jsoup.parse(EntityUtils.toString(response.getEntity(), Charsets.UTF_8));// google商店的评分classElements tt9eCd document.getElementsByClass(TT9eCd);if (CollectionUtils.isEmpty(tt9eCd)) {log.debug(google商店评分数据监控没有评分app:{}, url);return null;}return (int) (Double.parseDouble(tt9eCd.get(0).textNodes().get(0).text()) * 10);}} catch (Exception e) {e.printStackTrace();log.error(google商店评分数据监控异常!!!url:{},异常:{}, url, e.toString());//throw new RuntimeException(e);} finally {if (Objects.nonNull(response)) {try {EntityUtils.consume(response.getEntity());} catch (IOException e) {//throw new RuntimeException(e);}}}return null;}总的工具类,测试
package com.study.springbootplus.util;import com.google.common.base.Charsets;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;import java.io.IOException;
import java.util.Objects;/*** ClassName GooglePlayUtil* Author yida* Date 2023-08-21 17:04* Description GooglePlayUtil*/
Slf4j
public class GooglePlayUtil {private static final HttpClient httpClient HttpClients.custom().setDefaultRequestConfig(RequestConfig.custom().setConnectTimeout(3000).setSocketTimeout(3000).build()).build();public static void main(String[] args) {System.setProperty(java.net.useSystemProxies, true);offline(https://play.google.com/store/apps/details?idcom.tencent.mm);System.out.println(返回的分数: score(https://play.google.com/store/apps/details?idcom.tencent.mm));}public static void offline(String url) {// 1.解析网页(jsoup 解析返回的对象是浏览器Document对象)HttpResponse response null;try {response getHttpResponse(url);if (response.getStatusLine().getStatusCode() 300) {// 下架通知log.error(谷歌App检测下架: {} , url);}log.error(谷歌App检测下架: code码{} , response.getStatusLine().getStatusCode());} catch (Exception e) {log.error(谷歌App检测下架!!!url:{},异常:{}, url, e);//throw new RuntimeException(e);} finally {if (Objects.nonNull(response)) {try {EntityUtils.consume(response.getEntity());} catch (IOException e) {//throw new RuntimeException(e);}}}}public static Integer score(String url) {// 1.解析网页(jsoup 解析返回的对象是浏览器Document对象)HttpResponse response null;try {response getHttpResponse(url);if (response.getStatusLine().getStatusCode() 300) {Document document Jsoup.parse(EntityUtils.toString(response.getEntity(), Charsets.UTF_8));// google商店的评分classElements tt9eCd document.getElementsByClass(TT9eCd);if (CollectionUtils.isEmpty(tt9eCd)) {log.debug(google商店评分数据监控没有评分app:{}, url);return null;}return (int) (Double.parseDouble(tt9eCd.get(0).textNodes().get(0).text()) * 10);}} catch (Exception e) {e.printStackTrace();log.error(google商店评分数据监控异常!!!url:{},异常:{}, url, e.toString());//throw new RuntimeException(e);} finally {if (Objects.nonNull(response)) {try {EntityUtils.consume(response.getEntity());} catch (IOException e) {//throw new RuntimeException(e);}}}return null;}public static HttpResponse getHttpResponse(String url) throws Exception {return httpClient.execute(new HttpGet(url));}}
测试结果: 返回的分数:36