女友想买个手机!我用Python做了个比价机器人了!

设计了一款商品价格监控机器人,可在商品降价时及时通知用户。支持京东和小米商城,并可通过钉钉或邮件接收提醒。

菜鸟学Python”,第“548”篇原创

还有一个月不到就过年啦,大家都要买点年货啥的,女友一直想买个手机,但是有的时候在京东购物时,你是否遇到如下情况:

心仪的商品降价了,你却一无所知,等发现了却只有四个大字“到货通知”,你设置了京东自带的降价提醒,结果京东在降价后很久才发邮件提醒你或者干脆没有提醒,结局仍然是“到货登记”;网上各种折扣信息,各种折扣网站,却总是不能选择关注指定商品。

30c73fbdaa26cdca0cfe720fe9d21d19.png

0.商品价格监控机器人

为了解决这个问题,我们设计了【商品价格监控机器人】项目,能彻底帮助你解决这个问题。当你关注的商品降价时会第一时间得到通知提醒。

ca962673c9a6703296f96f7d2f102115.png

不仅支持钉钉,这个项目也可以用邮件通知的,甚至用企业微信,谁叫我们是码农呢,改改代码就可以。

9418250014665179a7cda15648035232.png

看上去是不是很酷啊,这个项目不仅支持京东的商品降价通知,还支持小米商城的商品降价通知,下面菜鸟哥把基本的原理跟大家讲一下。

1.项目的设计思路

08feb15da4611592092f69da6e589962.png

核心功能就是根据你设置的商品链接,去请求电商网站获取商品的最新价格,然后进行降价逻辑处理,符合条件就会发送钉钉消息或者 QQ 邮件通知。

2.部分源码

下面是整个小项目的部分源码,我们把每一个功能块进行的分割,这样的设计符合开闭原则,代码进行模块化,方便调试也方便未来项目的扩展。

57e08e019c4e814048ffdf90f2799b8c.png

通过定时任务,启动两个监控机器人,分别监控某东和小米上面的价格,然后存入redis进行对比价格,一旦发现价格便宜的,立刻用邮件或者钉钉去报警。

3.项目涉及到的知识点

f1b0505ab5e8ccbbf66b42c0153fdc7a.png

很多同学抱怨,学Python学了就忘,或者自己的工作中用不到Python,兴趣就没有那么浓厚,再加上没有编程基础,学着学着就入门到放弃了。

我们这个项目,就非常适合小白入手,看起来好像很复杂,但是每一个模块代码量都不是很多,算是一个综合小练习,而且非常实用。大家可以进行扩展,增加你监控商品的类别。

为了更好的帮助大家理解,我们团队下周三会做一次直播给大家讲一下这个项目。这也是我们知识星球的第三个实用的项目。(往期:Python股票监控机器人,加强版!用 Python 做了一个 "盯盘机器人")星球会提供全套的趣味案例源码,通过视频,保姆式的文章帮助大家在趣味学习Python,专业的老师帮你答疑。有兴趣的欢迎加入。

fffc7e742a2329c2e2fa717bc52414df.png

4.直播预告

下面是我们的直播预告,有兴趣的小伙伴记得来捧场哈,一起学Python加油加油!

45a7437ae9617d9eefb6b1937a8169b6.png

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|
点阅读原文,看200个Python案例!
当然可以!下面是一个简单的 Python 智能聊天机器人的代码示例,它使用了自然语言处理库 nltk 和机器学习库 scikit-learn: ```python # 导入必要的库 import nltk import numpy as np import random import string # 读取文本文件并进行预处理 f = open('chatbot.txt','r',errors = 'ignore') raw = f.read() raw = raw.lower() nltk.download('punkt') nltk.download('wordnet') sent_tokens = nltk.sent_tokenize(raw) word_tokens = nltk.word_tokenize(raw) # 定义一个函数来对用户的输入进行标准化和归一化处理 lemmer = nltk.stem.WordNetLemmatizer() def LemTokens(tokens): return [lemmer.lemmatize(token) for token in tokens] remove_punct_dict = dict((ord(punct), None) for punct in string.punctuation) def LemNormalize(text): return LemTokens(nltk.word_tokenize(text.lower().translate(remove_punct_dict))) # 定义一个函数来响应用户的问候 GREETING_INPUTS = ("hello", "hi", "greetings", "sup", "what's up", "hey",) GREETING_RESPONSES = ["hi", "hey", "*nods*", "hi there", "hello", "I am glad! You are talking to me"] def greeting(sentence): for word in sentence.split(): if word.lower() in GREETING_INPUTS: return random.choice(GREETING_RESPONSES) # 定义一个函数来生成机器人的回应 from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity def response(user_response): robo_response='' sent_tokens.append(user_response) TfidfVec = TfidfVectorizer(tokenizer=LemNormalize, stop_words='english') tfidf = TfidfVec.fit_transform(sent_tokens) vals = cosine_similarity(tfidf[-1], tfidf) idx=vals.argsort()[0][-2] flat = vals.flatten() flat.sort() req_tfidf = flat[-2] if(req_tfidf==0): robo_response=robo_response+"I am sorry! I don't understand you" return robo_response else: robo_response = robo_response+sent_tokens[idx] return robo_response # 与用户进行交互 flag=True print("ROBO: My name is Robo. I will answer your queries about Chatbots. If you want to exit, type Bye!") while(flag==True): user_response = input() user_response=user_response.lower() if(user_response!='bye'): if(user_response=='thanks' or user_response=='thank you' ): flag=False print("ROBO: You are welcome..") else: if(greeting(user_response)!=None): print("ROBO: "+greeting(user_response)) else: print("ROBO: ",end="") print(response(user_response)) sent_tokens.remove(user_response) else: flag=False print("ROBO: Bye! take care..") ``` 这段代码实现了一个简单的聊天机器人,可以回答用户有关聊天机器人的问题。您可以在此基础上进行修改和扩展,以创建自己的聊天机器人
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值