|
@@ -0,0 +1,155 @@
|
|
|
+package cn.com.ctop.kuaishou.modules.report.job;
|
|
|
+import cn.com.ctop.common.module.utils.HttpUtils2;
|
|
|
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouReportDailyAgent;
|
|
|
+import cn.com.ctop.kuaishou.modules.report.service.IKuaishouReportDailyAgentService;
|
|
|
+import com.fasterxml.jackson.databind.JsonNode;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import org.apache.http.client.CookieStore;
|
|
|
+import org.apache.http.impl.client.BasicCookieStore;
|
|
|
+import org.apache.http.impl.cookie.BasicClientCookie;
|
|
|
+import org.openqa.selenium.By;
|
|
|
+import org.openqa.selenium.Cookie;
|
|
|
+import org.openqa.selenium.WebDriver;
|
|
|
+import org.openqa.selenium.WebElement;
|
|
|
+import org.openqa.selenium.chrome.ChromeDriver;
|
|
|
+import org.openqa.selenium.chrome.ChromeOptions;
|
|
|
+import org.quartz.Job;
|
|
|
+import org.quartz.JobExecutionContext;
|
|
|
+import org.quartz.JobExecutionException;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+public class KuaishouReportAgentJob implements Job {
|
|
|
+ @Value("${jeecg.path.chrome-driver}")
|
|
|
+ private String chromeDriver;
|
|
|
+ @Autowired
|
|
|
+ private IKuaishouReportDailyAgentService kuaishouReportDailyAgentService;
|
|
|
+ public static void main(String[] args){
|
|
|
+
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
|
|
+ System.getProperties().setProperty("webdriver.chrome.driver", "D:/chromedriver.exe");
|
|
|
+ String url = "https://agent.e.kuaishou.com";
|
|
|
+ ChromeOptions chromeOptions = new ChromeOptions();
|
|
|
+ chromeOptions.addArguments("--headless");
|
|
|
+ chromeOptions.addArguments("--incognito");
|
|
|
+ chromeOptions.addArguments("--disable-gpu");
|
|
|
+// chromeOptions.addArguments("--no-sandbox");
|
|
|
+ chromeOptions.addArguments("--window-size=1920,1080");
|
|
|
+ chromeOptions.addArguments("--user-agent=" + HttpUtils2.USER_AGENT);
|
|
|
+ chromeOptions.setAcceptInsecureCerts(true);
|
|
|
+ WebDriver webDriver = new ChromeDriver(chromeOptions);
|
|
|
+ try {
|
|
|
+ Thread.sleep(3000L);
|
|
|
+ HttpUtils2.cookieStore = new BasicCookieStore();
|
|
|
+ webDriver.manage().deleteAllCookies();
|
|
|
+ //获取登录页面
|
|
|
+ webDriver.get(url);
|
|
|
+ Thread.sleep(3000L);
|
|
|
+ WebElement accountElement = webDriver.findElement(By.xpath("//div[@class='phone ']/input[@type='text']"));
|
|
|
+ accountElement.sendKeys("17718376864");
|
|
|
+ Thread.sleep(3000L);
|
|
|
+ WebElement passwordElement = webDriver.findElement(By.xpath("//div[@class='password ']/input[@type='password']"));
|
|
|
+ passwordElement.sendKeys("hcstbaoliang567");
|
|
|
+ WebElement loginElement = webDriver.findElement(By.xpath("//div[@class='foot']"));
|
|
|
+ Thread.sleep(3000L);
|
|
|
+ //点击登录
|
|
|
+ loginElement.click();
|
|
|
+ Thread.sleep(3000L);
|
|
|
+ Map<String,String> headerMap = new HashMap<String,String>();
|
|
|
+ headerMap.put("Accept","application/json");
|
|
|
+ headerMap.put("Accept-Encoding","gzip, deflate, br");
|
|
|
+ headerMap.put("Accept-Language","zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
|
|
|
+ headerMap.put("Connection","keep-alive");
|
|
|
+ headerMap.put("Host","agent.e.kuaishou.com");
|
|
|
+ headerMap.put("Referer","https://agent.e.kuaishou.com/");
|
|
|
+ headerMap.put("Content-Type","application/json;charset=utf-8");
|
|
|
+ headerMap.put("User-Agent",HttpUtils2.USER_AGENT);
|
|
|
+// headerMap.put("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
|
|
|
+// headerMap.put("Accept-Encoding","gzip, deflate, br");
|
|
|
+// headerMap.put("Accept-Language","zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
|
|
|
+// headerMap.put("Connection","keep-alive");
|
|
|
+// headerMap.put("Host","agent.e.kuaishou.com");
|
|
|
+// headerMap.put("Referer","https://agent.e.kuaishou.com/");
|
|
|
+// headerMap.put("Upgrade-Insecure-Requests","1");
|
|
|
+ Set<Cookie> cookies = webDriver.manage().getCookies();
|
|
|
+ Iterator iterator = cookies.iterator();
|
|
|
+ CookieStore cookieStore = new BasicCookieStore();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ String cookieStr = iterator.next().toString();
|
|
|
+ String[] cookieArray = cookieStr.split(";");
|
|
|
+ Map<String, String> cookieMap = new HashMap<String, String>();
|
|
|
+ for (String cookie : cookieArray) {
|
|
|
+ String[] kv = cookie.split("=");
|
|
|
+ if (kv.length > 1) {
|
|
|
+ cookieMap.put(kv[0].trim(), kv[1].trim());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ BasicClientCookie clientCookie = new BasicClientCookie(cookieArray[0].split("=")[0],
|
|
|
+ cookieArray[0].split("=")[1]);
|
|
|
+ clientCookie.setDomain("agent.e.kuaishou.com");
|
|
|
+ clientCookie.setPath(cookieMap.get("path"));
|
|
|
+ HttpUtils2.cookieStore.addCookie(clientCookie);
|
|
|
+ }
|
|
|
+ String listUrl = "https://agent.e.kuaishou.com/rest/dsp/agent/account/data/list";
|
|
|
+ String postData = "{\"agentId\":403756224,\"date\":\"2019-12-13\",\"sortKey\":\"totalCharge\",\"isAscending\":false,\"pageInfo\":{\"totalCount\":1616,\"currentPage\":1,\"pageSize\":999999}}";
|
|
|
+ String result = HttpUtils2.httpPostRequestTest(listUrl,postData,headerMap);
|
|
|
+ ObjectMapper mapper = new ObjectMapper();
|
|
|
+ JsonNode resultNode = mapper.readTree(result);
|
|
|
+ Integer code = resultNode.get("result").intValue();
|
|
|
+ if(code == 1){
|
|
|
+ Iterator<JsonNode> iterator1 = resultNode.get("data").elements();
|
|
|
+ int i = 0;
|
|
|
+ List<KuaishouReportDailyAgent> reportList = new ArrayList<>();
|
|
|
+ while (iterator1.hasNext()){
|
|
|
+ JsonNode dataNode = iterator1.next();
|
|
|
+ if(i == 0){
|
|
|
+
|
|
|
+ }else {
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ KuaishouReportDailyAgent kuaishouReportDailyAgent = new KuaishouReportDailyAgent();
|
|
|
+ kuaishouReportDailyAgent.setAccountId(dataNode.get("accountId").asInt());
|
|
|
+ kuaishouReportDailyAgent.setAdvertiserCreateTime(sdf.parse(dataNode.get("createTime").asText()));
|
|
|
+ kuaishouReportDailyAgent.setAdvertiserName(dataNode.get("accountName").asText());
|
|
|
+ kuaishouReportDailyAgent.setBalance(dataNode.get("totalBalanceDouble").decimalValue());
|
|
|
+ kuaishouReportDailyAgent.setConvertClickRate(dataNode.get("actionbarClickRatio").decimalValue());
|
|
|
+ kuaishouReportDailyAgent.setConvertCount(dataNode.get("actionbarClick").asInt());
|
|
|
+ kuaishouReportDailyAgent.setCost(dataNode.get("totalChargedInYuan").decimalValue());
|
|
|
+ kuaishouReportDailyAgent.setCostCampaignCount(dataNode.get("chargedCampaignCount").asInt());
|
|
|
+ kuaishouReportDailyAgent.setDate(sdf.parse(dataNode.get("dateTime").asText()));
|
|
|
+ kuaishouReportDailyAgent.setFengmianClickCount(dataNode.get("adPhotoClick").asInt());
|
|
|
+ kuaishouReportDailyAgent.setFengmianClickRate(dataNode.get("clickRatio").decimalValue());
|
|
|
+ kuaishouReportDailyAgent.setFengmianShowCount(dataNode.get("impression").asInt());
|
|
|
+ kuaishouReportDailyAgent.setFandianCost(dataNode.get("rebateRealChargedInYuan").decimalValue());
|
|
|
+ kuaishouReportDailyAgent.setJiliCost(dataNode.get("directRebateRealChargedInYuan").decimalValue());
|
|
|
+ kuaishouReportDailyAgent.setKid(dataNode.get("userId").asInt());
|
|
|
+ kuaishouReportDailyAgent.setKuangfanCost(dataNode.get("contractRebateRealChargedInYuan").decimalValue());
|
|
|
+ kuaishouReportDailyAgent.setSucaiShowCount(dataNode.get("click").asInt());
|
|
|
+ kuaishouReportDailyAgent.setXianjinCost(dataNode.get("realChargedInYuan").decimalValue());
|
|
|
+ kuaishouReportDailyAgent.setXinyongCost(dataNode.get("creditRealChargedInYuan").decimalValue());
|
|
|
+ reportList.add(kuaishouReportDailyAgent);
|
|
|
+ }
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ if(reportList != null && reportList.size() > 0){
|
|
|
+ kuaishouReportDailyAgentService.replaceBatch(reportList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.out.println(result);
|
|
|
+// String downloadUrl = "https://agent.e.kuaishou.com/rest/dsp/agent/account/data/download?agentId=403756224&startDate=2019-11-12&endDate=2019-12-12";
|
|
|
+// HttpUtils2.httpGet(downloadUrl,new HashMap<>(),headerMap);
|
|
|
+// String filePath = "D:/csv/"+ UUID.randomUUID()+".csv";
|
|
|
+// HttpUtils2.getFile(downloadUrl,headerMap,filePath);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ } finally {
|
|
|
+ webDriver.manage().deleteAllCookies();
|
|
|
+ webDriver.close();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|