远古项目实战丨用Python一秒搞定垃圾分类

这是一个严肃又欢乐的七月,哲学界迎来新拷问。

传统古典哲学的代表,是门口的保安大叔,他提出了三个经典问题:“你是谁?你从哪儿来?要到哪儿去?”

而后现代主义哲学的四位代表人物冒了出来,发出直指人内心的提问。

食堂大妈:你要饭吗?

配钥匙师傅:你配吗?

算命先生:你算什么东西?

滴滴司机:你搞清楚自己的定位没有?

从本月起,魔都正式步入生活垃圾强制分类的时代。个人一旦违规混合投放垃圾,将被处以最高200元的罚款。新兴哲学代表垃圾分类阿姨正式上岗:你是什么垃圾?

垃圾分类就这样拉开了2019后半年人类与环境的第一场大战。

为了我们赖以生存的地球,垃圾分类确实是刻不容缓的事。但是花花绿绿的垃圾,除了养猪,还有没有可能利用人工智能和数据科学的方法,进行更好的垃圾分类呢?

答案是肯定的!

今天就来分享爬虫助教的实战项目:用python生成垃圾分类器,1秒识别“你是什么垃圾”,完全避免了自己和家人为了不知道要扔哪个垃圾箱而烦恼。 

一、项目思路

这问题的解决思路或许不止一条,我们来看看助教是怎么思考的:

第一步,先评估整个功能,认为可以利用Python爬取网页来实现:找出哪个网页能达到这垃圾分类,对网页进行分析,再把里面的信息提取出来。

为了确保垃圾分类器信息来源的准确性,首先要明确自己所做的垃圾分类器是依据哪个垃圾分类网,经过选择,助教选择了这https://lajifenleiapp.com/sk/这个网站。

第二步,通过搜索发现每次搜索网页url的变化规律。

第三步,分析网页源码,将网页源码中的关键内容进行提取。

二、环境

操作系统:MacOSX

编辑器:PyCham

Python版本:3.7.4

相关模块:requests,bs4

python自带模块: urllib,tkinter

三、代码实现

一切准备就绪,我们开始工作。首先,导入所需要的相关模块。

import requestsfrom bs4 import BeautifulSoupfrom urllib.request import quoteimport tkinterfrom tkinter import Tk,Button,Entry,Label,Text,END

接着,请求爬取网页。

def crawl(word):    # -------------加了requests headers    params = {    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',    'Accept - Encoding': 'gzip, deflate, br',    'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,es-US;q=0.6,es;q=0.5',    'Connection': 'keep-alive',    'DNT': '1',    'Host': 'lajifenleiapp.com',    'Referer':'https://lajifenleiapp.com/',    'Upgrade - Insecure - Requests': '1',    'User - Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36',    }

将爬取得数据进行清洗筛选,从中选取自己需要的数据。

 if a[0].text !='未查到完全匹配字段。':        b = res.find_all("li")        '''        for i in range(10):            print(i, '\n',a[i])        '''        # ------------严重错误!!!!!!!!!, IndexError: list index out of range, 从4,5,6,7,8改成了3,4,5,6,7        print(a[0].text,a[1].text,a[3].text,a[4].text,a[5].text,a[6].text,a[7].text)        return "相似物品:\n"+a[0].text.strip().replace("\n"," ").replace("相关查询:","")+"\n\n\n"+a[1].text+"\n\n"+a[3].text+"\n\n"+a[4].text+"\n\n"+a[5].text+"\n"+a[6].text+"\n"+a[7].text+"\n"+b[0].text+"\n\n"+b[1].text    else:        return word+"可不是什么垃圾,哼,请重新搜索"

最后,对垃圾分类器界面端的大小、颜色等进行设计。​​​​​​​

win = tkinter.Tk()win.title("垃圾分拣查询器")win.geometry("400x400+200+50")win.minsize(310,470)win.maxsize(310,470)result_text1 = Text(win,background = 'azure')result_text1.place(x = 10,y = 5,width = 285,height = 70)result_text1.bind("<Key-Return>","submit1")title_label = Label(win, text=u'垃圾分类查询结果:')title_label.place(x=10, y=100)# 翻译结果
result_text = Text(win, background='light cyan')result_text.place(x=10, y=120, width=285, height=325)def submit1():    content = result_text1.get(0.0, END).strip().replace("\n", " ")    # 把这个值传送给服务器进行翻译    result = crawl(content)    result_text.delete(0.0, END)    result_text.insert(END, result)def submit():
    content = result_text1.get(0.0,END).strip().replace("\n"," ")

    result = crawl(content)    result_text.delete(0.0, END)    result_text.insert(END, result)def clean():    result_text1.delete(0.0,END)    result_text.delete(0.0,END)submit_btn = Button(win, text=u'查询', command=submit)submit_btn.place(x=205, y=80, width=35, height=25)submit_btn2 = Button(win, text=u'清空', command=clean)submit_btn2.place(x=250, y=80, width=35, height=25)
win.mainloop()

四、成果展示

一个垃圾分类识别器就这么生成了!

输入你任何具备疑惑的垃圾,1秒就能得到解答。 

五、尾声

整个小功能并不难实现,只要学到Python小课的爬虫山脚第3关,掌握resquests库、beautifulsoup库的使用,以及quote函数与url的拼接,你也能将自己的idea变成现实。

简单的爬虫技术,其实还可以实现很多有趣的事情:

  • 比如有人用来做股票分析;

  • 有人想转行前端,爬过拉勾网里所有前端职位的招聘需求,然后从中分析出哪些框架要求的多,就专攻那些框架学习,再去去找工作;

  • 有人用python轻松爬取千张表情包,再也不怕斗图了;

  • 有人观影前爬取某电影的猫眼评论和评分,更准确地从眼花缭乱的评论中分析,大家对这电影打高分或低分的原因,还做成了关键词词云……

Python可以为我们的好奇心买单,通过合理设置爬虫和分析工具,我们的生活会远远比目前看到的更加精彩和多样化。

还没开启Python学习的你,不要再在犹豫中耗尽所有可能!

Python经验分享

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

Python学习路线

这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
在这里插入图片描述

学习软件

Python常用的开发软件,会给大家节省很多时间。
在这里插入图片描述

学习视频

编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
在这里插入图片描述

100道练习题

在这里插入图片描述

实战案例

光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
在这里插入图片描述
最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值