程序员黑科技之夺宝岛

简介: <div class="markdown_views"><p>额,不知道这样好不好。 <br>不过还是希望CSDN不要删除啊,不管是好的坏的,咱们都要开源分享不是。</p><p>主要就是基于Chrome能够在Console中执行js来做的。 <br>以京东夺宝岛为例子我们需要做如下的事情:</p><ul><li>在Chorme中打开夺宝岛网页,按F12,然后刷新

额,不知道这样好不好。
不过还是希望CSDN不要删除啊,不管是好的坏的,咱们都要开源分享不是。

主要就是基于Chrome能够在Console中执行js来做的。
以京东夺宝岛为例子我们需要做如下的事情:

  • 在Chorme中打开夺宝岛网页,按F12,然后刷新页面
  • 转到Network标签,看所有的请求,研究出那个请求是拿当前价格的
    方式是点击请求,看Response中的返回值:
    这里写图片描述
    得到结果:http://paimai.jd.com/json/current/englishquery?paimaiId=10473082&skuId=0&t=650541&start=0&end=9
    这个链接能够查看所有的出价记录的json字符串,第一个就是当前的报价了
  • 然后就是设置一个加价值,心理价位, 然后提交
  • 再次获得最高价,如果不是我出的那么就再次加价,循环这个过程
  • 当然还是的通过Chrome来知道提交加价的请求应该是什么
    这里直接列出结果:http://paimai.jd.com/services/bid.action?

剩下的就是开始写脚本了。


var t,count = 1,price=0,pin = getCookie('pin'),f = function(){
    $.ajax({
    url:'http://paimai.jd.com/json/current/englishquery?paimaiId='+paimaiId+'&skuId=0&t=964468&start=0&end=9',
    async:false,
    success:function(data){
        var currentPrice = parseFloat(data.currentPrice);
        console.info("第",count,"次检测商品当前拍卖价格是",currentPrice);
        if(data.auctionStatus == 2){
            console.error("商品拍卖结束,获得者",data.currentUser);
            clearTimeout(t);return;
        }
        if(data.currentPrice < 1500) {
            if(pin != data.currentUser && price != currentPrice){
                $.ajax({
                url:'http://paimai.jd.com/services/bid.action?t=369168&paimaiId='+paimaiId+'&proxyFlag=0&bidSource=0&price='+(currentPrice+1),
                async:false,
                success:function(data1){
                    console.warn("第",count,"次加价拍,本次出价",(currentPrice+1),"出价结果",data1.message);
                    if(data1.result == 200){
                        currentPrice = currentPrice+1;
                    } else {
                        if(data1.result == 516) {clearTimeout(t);return;}
                    }
                }
                });
            } else {
                console.info("商品价格未变,忽略加价");
            }
            price = currentPrice;
            t = setTimeout(f,1000);
        } else {
            console.error("商品价格高于原价5折,停止加价");
            clearTimeout(t);
        }
    }
    });
    count++;
}
f();



//暂停
clearTimeout(t)

代码还是比较简单,就不多做解释了。这里说一下有个关键的地方是网页分析的部分。就是从请求中拿到了自己想要的数据。

这样样例的请求是一个json,所以能够直接用了,如果是一个html网页应该怎么办呢?
因为现在的网页一般都用了jquery,所以可以使用jquery脚本来做。他的拾取器还是之棒的。
比如这样:
var val = (tr:eq(2),html); (‘td:gt(1)’,val).html() 第二个tr的第一个td. 等等

相关文章
|
运维 Linux
keepalived详解(二)——keepalived安装与配置文件
keepalived详解(二)——keepalived安装与配置文件
809 1
|
前端开发 JavaScript
uniapp实现轮播swiper中间大两头小
uniapp实现轮播swiper中间大两头小
373 0
|
5月前
|
机器学习/深度学习 运维 Kubernetes
AllData数据中台升级发布 | 支持K8S数据平台2.0版本
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
7月前
|
知识图谱
YOLOv11改进策略【Conv和Transformer】| 2023 引入CloFormer中的Clo block 双分支结构,融合高频低频信息(二次创新C2PSA)
YOLOv11改进策略【Conv和Transformer】| 2023 引入CloFormer中的Clo block 双分支结构,融合高频低频信息(二次创新C2PSA)
199 8
YOLOv11改进策略【Conv和Transformer】| 2023 引入CloFormer中的Clo block 双分支结构,融合高频低频信息(二次创新C2PSA)
|
Dubbo Java 应用服务中间件
Dubbo日志文件输出到指定目录 如何定义?
Dubbo日志文件输出到指定目录 如何定义?
|
11月前
|
传感器 监控 搜索推荐
智能纺织品:健康监测与生活方式的结合
【10月更文挑战第22天】智能纺织品融合了传感器、导电纤维和微电子元件等先进技术,不仅改变了穿着体验,还为健康监测和生活方式的改善带来了新机遇。它们能实时监测心率、血压等生理数据,通过无线通信技术传输至手机或云端,实现远程监控与数据分析。未来,智能纺织品将更加智能化、个性化和环保,成为日常生活中不可或缺的一部分。
|
消息中间件 负载均衡 持续交付
构建可扩展的微服务架构:从设计到实现
在微服务架构的世界里,设计和实现可扩展性是至关重要的。然而,开发者往往面临着如何在系统复杂性和性能之间取得平衡的问题。本文通过深入探讨微服务架构的关键设计原则和实践,展示了如何从初期设计到最终实现,构建一个既高效又可扩展的系统架构。
|
供应链 监控 Java
ageiport使用
ageiport使用
710 0
ageiport使用
|
JSON Cloud Native 中间件
导入导出框架AGEIPort(GEI)正式开源
AGEIPort 是数字供应链孵化并在阿里巴巴集团内广泛使用的一套性能卓越、稳定可靠、功能丰富、易于扩展、生态完整的数据导入导出方案,致力于帮助开发者在toB复杂业务场景下能够快速交付高性能、体验优、易维护的数据导入导出功能,如用户页面上的Excel/CSV数据文件上传和下载。 目前在阿里巴巴集团内部已有盒马、菜鸟、本地生活、阿里健康、钉钉、淘系等部门有较多使用,并成为多个技术组件的基础底座,经历多次618和双11大促考验,稳定导入导出数据300~400亿条/月。
38889 9
导入导出框架AGEIPort(GEI)正式开源
|
数据库
解决logstash同步数据库内容到ES时,同步时间点用到了别的表的最新时间点
解决logstash同步数据库内容到ES时,同步时间点用到了别的表的最新时间点
245 0

热门文章

最新文章