已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > Java

标题: [精]穷人买金 java实现监控京东积存金价格

作者: @Ta

时间: 2020-12-28发布,2020-12-29修改

点击: 31275

更新:程序做了优化,页面只加载一次,第三、四个参数可以忽略,默认间隔2s,可以改第三个参数设置间隔时间,电脑没网不会报错。下载地址已更新至最新。
Pc下载地址:https://hik.lanzous.com/iee3Rjt4fhe
手机app下载地址:https://hik.lanzous.com/iK7ntjuaopi

IMG_20201229_201234.png

我监控391.7买了一千块的试试,现在过了十分钟盈利6元,去掉手续费净赚3元
这是我开发的一款java黄金监控程序,控制台打开可以一直输出当前黄金价,如图:

image-20201228153932250

命令:

java -jar goldNotice-1.0-SNAPSHOT-jar-with-dependencies.jar 400 391.6 2500 3000

第一个参数是我想卖出的金价,第二个参数是买入金价,现在我还想蹲一波391.6的所以我设置的391.6,第三个参数循环间隔时间,单位毫秒,如果网络不好可能会报错,那就再加第四个参数,例如3000,就是请求页面后等待3000毫秒再获取价格(因为网速慢时间段价格会刷不出来)。
程序监控到低于买入价格或者高于卖出价格会有弹窗提示,并且会结束监控,如果部署在服务器的话可以使用Server酱微信推送。

下载地址:https://hik.lanzous.com/iee3Rjt4fhe

代码,所需依赖啥的看我这篇文章吧

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import javax.swing.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;
import java.util.logging.LogManager;

public class Main {
    public static void main(String[] args) {
        LogManager.getLogManager().reset();
//        预期卖出价
        float expectPrice = 399;
//        预期买入价
        float lowPrice = 390;
//        间隔时间 默认2s
        long sec = 2000;
//        请求等待时间
        long reqSec = 5000;
        for (int i = 0; i <= 3; i++) {
            if (args.length > 0 && i == 0)
                expectPrice = Float.parseFloat(args[0]);
            if (args.length > 1 && i == 1)
                lowPrice = Float.parseFloat(args[1]);
            if (args.length > 2 && i == 2)
                sec = Long.parseLong(args[2]);
            if (args.length > 3 && i == 3)
                reqSec = Long.parseLong(args[3]);
        }
        System.out.println("数据加载中请稍候……");
        WebClient webClient = new WebClient(BrowserVersion.CHROME);//模拟火狐浏览器
        try {
            webClient.setJavaScriptTimeout(5000);
            webClient.getOptions().setUseInsecureSSL(true);//接受任何主机连接 无论是否有有效证书
            webClient.getOptions().setJavaScriptEnabled(true);//设置支持javascript脚本
            webClient.getOptions().setCssEnabled(false);//禁用css支持
            webClient.getOptions().setThrowExceptionOnScriptError(false);//js运行错误时不抛出异常
            webClient.getOptions().setTimeout(100000);//设置连接超时时间
            webClient.getOptions().setDoNotTrackEnabled(false);
            HtmlPage page = webClient.getPage("https://m.jdjygold.com/finance-gold/newgold/index/?ordersource=2&jrcontainer=h5&jrlogin=true&utm_source=Android_url_1609033920704&utm_medium=jrappshare&utm_term=wxfriends");
//                加载js需要时间故延迟默认5s
            Thread.sleep(reqSec);
            while (true) {
//                使用Jsoup解析html
                Document document = Jsoup.parse(page.asXml());
                Elements span01 = document.getElementsByClass("price_span01");
                String price = span01.text();
                String localeString = new Date().toLocaleString();
                System.out.println(localeString + " " + price);
                String msg = localeString + "价格已达到预定值:" + price;
                String lowMsg = localeString + "价格已低于预定值:" + price;
                float goldPrice = Float.parseFloat(price);
                if (msg != null && goldPrice >= expectPrice) {
                    JOptionPane.showConfirmDialog(null, msg, "达到预期卖出价提示", JOptionPane.CLOSED_OPTION);
//                若部署在服务器上则使用Server酱提醒
//                getUrl("https://sc.ftqq.com/xxxxxxxxxxxxxx.send?text="+msg);
                    return;
                }
                if (msg != null && goldPrice <= lowPrice) {
                    JOptionPane.showConfirmDialog(null, lowMsg, "低于预期买入价提示", JOptionPane.CLOSED_OPTION);
//                getUrl("https://sc.ftqq.com/xxxxxxxxxxxxxx.send?text="+lowMsg);
                    return;
                }
                Thread.sleep(sec);
            }
        } catch (FailingHttpStatusCodeException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } catch (MalformedURLException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } catch (IOException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } catch (InterruptedException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } finally {
            webClient.close();
        }
    }

    public static void getUrl(String toUrl) throws IOException {
        URL url = new URL(toUrl);
        //建立连接
        URLConnection urlConnection = url.openConnection();
        //连接对象类型转换
        HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;
        //设定请求方法
        httpURLConnection.setRequestMethod("GET");
        //获取字节输入流信息
        InputStream inputStream = httpURLConnection.getInputStream();
        //字节流转换成字符流
        InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
        //把字符流写入到字符流缓存中
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        String line = null;
        //读取缓存中的数据
        while ((line = bufferedReader.readLine()) != null) {
            System.out.println(line);
        }
        //关闭流
        inputStream.close();
    }
}

https://cway.top


[隐藏样式|查看源码]


『回复列表(24|显示机器人聊天)』

1.

虽然比不上大佬们的比特币与股市梭哈,但还是一句话 理财有风险,投资需谨慎
https://cway.top

(/@Ta/2020-12-28 16:06//)

2.
hmd global nokia 7 plus(黑色)
(/@Ta/2020-12-28 16:08//)

3.
小米MIX2s(白)
(/@Ta/2020-12-28 16:12//)

4.

没太懂,也没玩过基金这些,我印象中基金不是卖出需要时间?黄金可以立即卖出?
红米Note7 高配版(黑色)

(/@Ta/2020-12-28 16:23//)

5.

@无道,交易时间内都可以即买即卖,只是京东会扣千分之三手续费
https://cway.top

(/@Ta/2020-12-28 16:31//)

6.

@hik,那不是每天都可以薅点零食钱,饭钱?牛逼啊大佬
红米Note7 高配版(黑色)

(/@Ta/2020-12-28 16:59//)

7.

有意思哈
~~~

(/@Ta/2020-12-28 17:15//)

8.

@无道,这要有足够本金,另外假如买高了要有风险承受能力,毕竟未来涨跌不确定。不过相较大佬们梭哈比特币股票来说这还算风险较低的
https://cway.top

(/@Ta/2020-12-28 17:27//)

9.

@hik,你这可以即时卖出啊,而且黄金价格总的来说应该还算平稳吧?不太清楚,应该是算平稳吧?
红米Note7 高配版(黑色)

(/@Ta/2020-12-28 17:44//)

10.

@无道,12月1号369,现在392,波动还是有的,不过一天内的波动应该不大。不过因为一天内波动不大,如果当天买当天卖盈利也就不多。但是如果要等的话又可能会跌的风险。还有节假日会休市。
https://cway.top

(/@Ta/2020-12-28 18:04//)

12.

能搞个安卓版的不
红米Note4增强版

(/@Ta/2020-12-28 18:14//)

14.

@空心,应该不难,现在蹲到391.1了,还好下午392的只买了一千
哭了,不到十分钟390了,买早了
https://cway.top

(/@Ta/2020-12-28 19:55//)

15.
(/@Ta/2020-12-28 21:15//)

16.

@泰戈尔会游泳,391入的,现在快395了,看来恰巧买到了今天的低价我想要不要蹲到395再卖,万五手续费45,盈利也一百多点Screenshot_2020-12-28-22-38-58-779_com.jd.jrapp.jpg
https://cway.top

(/@Ta/2020-12-28 22:45//)

17. @hik,可以直接GET请求这接口,就不用渲染页面了......

https://api.jdjygold.com/gw/generic/hj/h5/m/latestPrice?reqData=%7B%7D
(/@Ta/2020-12-29 09:29//)

18. @iola1999,666
(/@Ta/2020-12-29 10:41//)

19.

@iola1999,昨天我也发现了,用它弄了个手机端,@空心,安卓的已上传。总体来说今天血亏,没涨价
https://cway.top

(/@Ta/2020-12-29 20:21//)

20. 我也来一个windows挂件版
256d005ea2768430c64de7a872faa7c962017.png
fdc43bf6c4c5e866384e3e305cab219d6033.png
(/@Ta/2020-12-30 14:38//)

21. http://file.hu60.cn/file/hash/rar/1bd371d01e066aeab0a254ecdce8b1f15345639.rar?attname=JDGold.rar
C#/.NET5 编写
(/@Ta/2020-12-30 14:41//)

下一页 1/2页,共24楼

回复需要登录

6月29日 04:18 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1