【Python】京东商品价格监控

import requests,json,re,winsound,time

class Stock(object):
    def __init__(self):
        self.province_dict={value:key for key,value in {
            1:‘北京‘,2:‘上海‘,3:‘天津‘,4:‘重庆‘,5:‘河北‘,6:‘山西‘,7:‘河南‘,8:‘辽宁‘,9:‘吉林‘,10:‘黑龙江‘,
            11:‘内蒙古‘,12:‘江苏‘,13:‘山东‘,14:‘安徽‘,15:‘浙江‘,16:‘福建‘,17:‘湖北‘,18:‘湖南‘,19:‘广东‘,20:‘广西‘,
            21:‘江西‘,22:‘四川‘,23:‘海南‘,24:‘贵州‘,25:‘云南‘,26:‘西藏‘,27:‘陕西‘,28:‘甘肃‘,29:‘青海‘,30:‘宁夏‘,
            31:‘新疆‘,32:‘台湾‘,84:‘钓鱼岛‘,52993:‘港澳‘
        }.items()}
        self.price_dict={
            ‘PC端‘:‘https://p.3.cn/prices/get?type=1&skuid=J_{}‘,
            ‘APP端‘:‘https://pm.3.cn/prices/mgets?origin=2&skuIds={}‘,
            ‘微信端‘:‘https://pe.3.cn/prices/mgets?origin=5&skuids={}‘,
            ‘QQ端‘:‘https://pe.3.cn/prices/mgets?origin=4&skuids={}‘
        }
        self.set_skuId()

    def set_skuId(self):
        self.skuId=input(‘请输入商品ID:‘)
        r=requests.get(‘http://item.jd.com/{}.html‘.format(self.skuId)).text
        cer=re.compile(‘<title>(.*)</title>‘,flags=0)
        self.skuName=cer.findall(r)
        if not self.skuName:
            print(‘您输入的商品ID有误!‘)
            return self.set_skuId()
        else:
            print(self.skuName[0])

    def get_price(self):
        for key,value in self.price_dict.items():
            #print(value.format(self.skuId))
            r=json.loads(requests.get(value.format(self.skuId)).text)[0][‘p‘]
            print(key,r)

    def get_stock(self):
        provinceName=input(‘请输入要查询的省份(如福建):‘)
        if provinceName in self.province_dict.keys():
            r=json.loads(requests.get(‘https://c0.3.cn/stock?skuId={skuId}&cat=1316,1385,1408&area={province}_2805_2855‘.format(skuId=self.skuId,province=str(self.province_dict[provinceName]))+‘&extraParam={%22originid%22:%221%22}‘).text)
            print(format(skuId=self.skuId,province=str(self.province_dict[provinceName])))
            print(r[‘stock‘][‘area‘][‘provinceName‘],‘:‘,r[‘stock‘][‘StockStateName‘])
            if r[‘stock‘][‘StockStateName‘]==‘无货‘:
                flag=input(‘商品暂时无货,是否循环监控?y/n:‘)
                if flag==‘y‘:
                    while True:
                        r=json.loads(requests.get(‘https://c0.3.cn/stock?skuId={skuId}&cat=1316,1385,1408&area={province}_2805_2855‘.format(skuId=self.skuId,province=str(self.province_dict[provinceName]))+‘&extraParam={%22originid%22:%221%22}‘).text)
                        print(r[‘stock‘][‘area‘][‘provinceName‘],‘:‘,r[‘stock‘][‘StockStateName‘])
                        if r[‘stock‘][‘StockStateName‘]==‘现货‘:
                            for i in range(4):
                                winsound.Beep(800,250)
                                print(r[‘stock‘][‘area‘][‘provinceName‘],‘:‘,r[‘stock‘][‘StockStateName‘])
                                time.sleep(1)
                            time.sleep(0.3)
                            winsound.Beep(1600,500)
                            break
                        time.sleep(5)
        else:
            print(‘您的输入有误,请重新输入!‘)
            return self.get_stock()

if __name__==‘__main__‘:
    s=Stock()
    s.get_price()
    s.get_stock()

  

时间: 2025-01-07 21:00:20

【Python】京东商品价格监控的相关文章

Python实现商品价格监控,识破双十一的套路

一年一度的“双十一”又要来了,很多人已经开始摩拳擦掌,毕竟几天之后手还在不在就不好说了. 各种社交软件也是跟着遭殃,整天就是“来帮我一起盖楼”,各种字体绕过屏蔽,什么奇葩的脑洞也出来了: 不过也感谢这些电商平台,让多年未联系的好友.加过但没有对话的陌生人都找到了打破尴尬的话题.(让场面更加尴尬) 月薪上万的白领们为了2块5毛钱的优惠券起早贪黑,也是堪称人类迷惑行为大赏了…… 问题是,你以为自己真的赚到了? 商品“明降暗升”的传言早有耳闻:很多商品在双十一之前早早地把价格调高,加上优惠之后也不过就

Python 京东口罩监控+抢购

代码 https://github.com/hkmayfly/JDG 使用教程 环境 Python 3.7.1 代码修改 jdmain.py mailto_lists:收件人的邮箱 mail_sender:发件人邮箱 mail_pass:邮箱授权码 jd_url_list:商品页面获取的链接 requests.post:第一个参数填写Server酱获取到的接口(实际发送post或者get请求都可以) JDBuy.py cookies_String:登录之后网页cookie值 payment_pw

京东价格监控软件开发技术探讨七:如何获取京东商品评价信息

在购买商品的时候,这个商品质量怎么样.价格贵不贵.商家服务态度好不好?这些问题往往是购买者急需知道的信息. 京东平台提供了商品评价功能,能够让购买者通过其他购买者的反馈来决定自己到底买不买这个商品. 项目组在对"杀京东"程序进行需求调研时,认为提供商品的评价尤其是差评信息,对购买者非常有指导意义,能加强用户的操作体验.此时,如何获取京东商品的评价信息成为项目组的首要任务. 首先还是先上神器Fiddler,通过它来获取到访问地址. //差评 http://club.jd.com/prod

python subprocess模块 监控子进程的2种方式 忙等待和立即返回同时设置子进程超时

下面的资料是关于python subprocess模块 监控子进程的2种方式 忙等待和立即返回同时设置子进程超时时间的代码. import subprocess import os import time tt = '555' cmd = "python /home/100003/python/mypython/sub2.py "+" 333"+" 444 "+tt print time.time() sub2 = subprocess.Pope

使用python进行服务器监控

使用python进行服务器监控 Linux服务器中,一切皆为文件.也就是说服务器运行的各种信息,其实是可以从某些文件中查询得到: Linux系统中,有一个/proc的虚拟文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核,而不需要重新引导内核系统,这是通过/proc 虚拟文件系统实现的./proc 文件虚拟系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做“/proc”),这个伪文件系统允许与内核内部数据结构交互,获取有关进程的有用信息,

在线公开课 | 京东云监控系统设计及落地之路

谈运维为什么离不开监控?典型监控系统一般是如何设计的?业务驱动的高可用监控系统又有何不同?作为巨头之一的电商平台京东, 其基于京东云的监控系统是否有值得借鉴的地方?本文将解答这些问题.本文整理自 10 月 30 日由京东云开发者社区和英特尔联合举办的在线公开课,京东云工具产品研发部专家架构师颜志杰的在线课程演讲--业务驱动监控系统设计与落地. 世上没有百分百可靠的系统,程序.机器.网络都可能在运行中出现问题,进而导致服务异常, 带来金钱及品牌的损失,所以监控目标就是降低损失,通过发现.定位.解决

Python数据分析,抓取京东商品价格

原文地址:http://blog.51cto.com/2290153/2125123

Python京东口罩实时监控抢购脚本

代码 https://github.com/hkmayfly/JDG 明天添加使用教程 参考文章: https://github.com/Rlacat/jd-automask https://github.com/cycz/jdBuyMask https://blog.csdn.net/qq_36853469/article/details/100580753 原文地址:https://www.cnblogs.com/Mayfly-nymph/p/12329471.html

京东MySQL监控之Zabbix优化、自动化

随着京东业务的飞速发展, MySQL数据库的使用更加普及.服务器量级飞速增长,这对京东MySQL DBA团队的要求也越来越高.监控系统为数据库管理和维护提供了精确的数据依据,是数据库运维人员的千里眼和顺风耳. 准确.及时.有效的监控,能够使运维人员对生产服务系统运行情况了如指掌.通过分析获得的监控信息,判断被监控数据库的运行状态,对可能出现的问题进行预测,可以及时制定出适当的优化方案,从而保证整个系统正常.高效地运行.这也就在很大程度上保证了数据库的安全性,避免了一些不必要的损失.所以,我们有必