首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

春节在家无聊,我用Python设计了一个对联软件

大家新年好!每逢过年,家家户户少不了的一项就是贴对联,但是看着年年的新春对联,内容毫无新意,兴致也就减了大半。既然是玩Python的,最近春节在家也无聊,花了几个小时,用Python设计一个小的对联软件!

先看效果图

界面设计

首先,程序的界面设计还是利用tkinter来进行设计通过tkinter的Entry类来输入我们的上联,然后通过button按钮,来启动程序进行设计。button键之所以能够完成后续的运行,是因为其绑定了我们的后续的操作函数(也就是代码中的get_xialian函数),通过绑定的函数,实现了爬虫的抓取和对联的保存。

界面设计完成了,而且绑定的函数也已经确定,接下来就是如何利用绑定的函数,来实现我们的后续操作,也就是爬虫抓取和保存。

爬虫助攻

首先对网页的分析,打开对联设计网页,并进入开发者模式,可以很轻松的找到我们需要的目标,如下图所示:

查看其请求的url,如下所示:

这个url非常的复杂,需要我们仔细的进行分析:

首先我们可以看出url有四个部分需要我们进行输入,然后细细分析发现,其in是我们输入的上联

time和timestamp顾名思义是时间和时间戳

而len的意义是输入的字数,以0的个数来代替

有同学可能问,这哪里有时间和输入?分明都是些字母符号。这是因为这里的时间和输入都是经过url编码后的格式,我们可以通过urllib中的unquote函数来检查。稍微总结一下,上面的url比较负责,包含了url编码的输入,还有特定编码格式的时间,还有时间戳以及让人费解的len。

了解了url的结构组织,我们就可以很轻松的模拟浏览器进行访问,返回我们需要的内容。但是在后续又出现了乱码的问题,对于乱码的问题,我们将爬取到的数据采用“utf-8”编码进行解决。而针对于json库不能解析,我们采用正则表达式的方式,匹配“下联”,并将“下联”返回。

最后将得到的数据保存在根目录下,当对联保存完毕后,程序会弹出对话框,提醒对联已经完成,并到本地进行查看,运行效果如下图所示。

用Python自带的tk作一些小工具结合爬虫,还是非常有意思的!如果能对下联进行AI处理,比如爬取几千幅对联并模型训练,用自然语言智能处理就更有意思啦!有兴趣的同学可以进行改编!需要源码的同学,直接扫码获取:

获取源码,扫上面的二维码,然后输入:【对联】

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190208B059H600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券