如何自动申请京东试用商品、签到获取京豆
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                如何自动申请京东试用商品、签到获取京豆
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                ????給大家分享一種,超簡單的自動申請京東試用商品、簽到獲取京豆等腳本
??我們知道,京東的每日簽到能獲取京豆,京豆是什么?京豆就是錢啊,100京豆=1元錢。另外京東每日都會更新大量的試用商品,這些試用商品有的是空調、手機等一些價值非常高的物品,而且 是免費的! 免費的! 免費的!,但是有個缺點就是需要每天登錄,然后再依次申請,不僅效率低下,而且很難找到自己想要的商品。那么有沒有一個“東西”(暫且這樣稱呼)可以每天自動幫我簽到獲取京豆,自動幫我申請試用商品呢?
 ??上面的想法也是我的想法,在我找尋整個互聯網后,找到了幾款自動的腳本可以實現這個功能,但是他們多多少少都有一些不滿意的地方:
最終讓我找到了一個新的方式,此腳本可以實現免登錄(需要首次登錄),而且優先申請高價值的商品,還可以幫忙代掛。完全解放雙手,節省大量時間。廢話不多說,直接上代碼和圖:
簽到
log.info("{}開始簽到", ptPin);HttpClient httpClient = new HttpClient();// 請求相關超時時間設置httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(10 * 1000);httpClient.getHttpConnectionManager().getParams().setSoTimeout(10 * 1000);PostMethod method = new PostMethod(dailySignUrl);method.setRequestHeader("procode", "test");method.setRequestHeader("User-Agent", "JD4iPhone/168210%20(iPhone;%20iOS;%20Scale/3.00)");method.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");method.setRequestHeader("Cache-Control", "no-cache");method.setRequestHeader("connection", "Keep-Alive");method.setRequestHeader("accept", "*/*");// 響應結果信息處理String result = "";try {httpClient.executeMethod(method);result = new String(method.getResponseBody(), "UTF-8");log.info("{}簽到結果:{}", ptPin, result);} catch (Exception e) {e.printStackTrace();} finally {// 釋放連接method.releaseConnection();}獲取分類
HttpGet httpGet = new HttpGet(url);httpGet.setHeader("Host", "api.m.jd.com");httpGet.setHeader("Origin", "https://prodev.m.jd.com");CloseableHttpClient httpClient = HttpClients.createDefault();try {CloseableHttpResponse closeableHttpResponse = httpClient.execute(httpGet);String result = EntityUtils.toString(closeableHttpResponse.getEntity());log.info("獲取京東試用頻道分類結果:{}", result);JSONObject resJSONObject = JSONObject.parseObject(result);JSONObject resDataJSONObject = resJSONObject.getJSONObject("data");JSONArray resTabListJSONArray = resDataJSONObject.getJSONArray("tabList");for (int i = 0; i < resTabListJSONArray.size(); i++) {JSONObject jsonObject = resTabListJSONArray.getJSONObject(i);JdTrialProductCategoryVO vo = jsonObject.toJavaObject(JdTrialProductCategoryVO.class);if (vo.getTabId() != 201 && vo.getTabId() != 204 && vo.getTabId() != 205 && vo.getTabId() != 206 && vo.getTabId() != 207) {jdTrialProductCategoryVOList.add(vo);}}} catch (Exception e) {e.printStackTrace();}log.info("分類列表:{}", jdTrialProductCategoryVOList);獲取商品
try {Thread.sleep(2 * 1000);CloseableHttpClient closeableHttpClient = HttpClients.createDefault();try {CloseableHttpResponse closeableHttpResponse = closeableHttpClient.execute(httpPost);String result = EntityUtils.toString(closeableHttpResponse.getEntity());log.info("獲取{}分類第{}頁的京東試用頻道商品列表結果:{}", tabId, page, result);if (StringUtils.hasText(result)) {JSONObject resJSONObject = JSONObject.parseObject(result);JSONObject dataJSONObject = resJSONObject.getJSONObject("data");JSONArray feedListJSONArray = dataJSONObject.getJSONArray("feedList");for (int j = 0; j < feedListJSONArray.size(); j++) {JSONObject jsonObject = feedListJSONArray.getJSONObject(j);log.info("商品信息:{}", jsonObject.toJSONString());JdTrialProductInfoVO vo = jsonObject.toJavaObject(JdTrialProductInfoVO.class);// 只獲取商品類型=1的數據if (vo.getType() == 1) {if (vo.getApplyState() != null && vo.getApplyState() == 1) {log.info("該商品已申請過了,跳過");} else if (vo.getJdPrice() == null) {log.info("無價格信息,跳過");} else if (vo.getJdPrice().compareTo(minJdPrice) < 0) {log.info("價格:{},價格低于設定最低價:{},跳過", vo.getJdPrice(), minJdPrice);} else if (isOnlyFree == 1 && vo.getTrialPrice().compareTo(BigDecimal.ZERO) > 0) {log.info("不是0元商品,試用價格為:{},跳過", vo.getTrialPrice());} else {boolean isExist = jdTrialProductInfoVOList.stream().anyMatch(jdTrialProductInfoVO -> jdTrialProductInfoVO.getTrialActivityId().equals(vo.getTrialActivityId()));if (isExist) {log.info("{}已存在!", vo.getSkuTitle());} else {log.info("{}添加成功!", vo.getSkuTitle());jdTrialProductInfoVOList.add(vo);}}}}page++;} else {break;}} catch (Exception e) {e.printStackTrace();}} catch (InterruptedException e) {throw new RuntimeException(e);}}log.info("類別:{}的所有商品數量:{}", tabId, jdTrialProductInfoVOList.size());開始申請##
log.info("{}開始申請", ptPin);CloseableHttpClient closeableHttpClient = HttpClients.createDefault();try {CloseableHttpResponse closeableHttpResponse = closeableHttpClient.execute(httpPost);String result = EntityUtils.toString(closeableHttpResponse.getEntity());JSONObject resultJSONObject = JSONObject.parseObject(result);log.info("{}申請結果:{}", ptPin, resultJSONObject.getString("message"));if (result.contains("150次上限")) {return false;}Thread.sleep(5 * 1000);} catch (Exception e) {e.printStackTrace();}
 后續還會繼續完善。集成更多的功能
總結
以上是生活随笔為你收集整理的如何自动申请京东试用商品、签到获取京豆的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Android视频裁剪适配,类似于Ima
 - 下一篇: [html] 404页面有什么作用?