兄弟,今天一起吃什么呀,吃什么,对于一个选择困难症的小伙伴来说简直就是太痛苦了,那么现在干脆就交给「老天爷」来决定的吧!
夜深了,是时候将这篇文章发出来了,今天小编将为你介绍如何将图片保存到本地,以及可以用爬取的数据实现微信公众号开发之今天吃什么!
本次的爬虫代码,我使用的是 Python 3.6 版本。其中的一些库的使用,需要你们先自行把这些库安装好。这些库的安装网上有很多教程,我就不在这里讲述。编程学习很重要的一点,是懂得自己上网查找相应的教程。
爬取目标:
本次爬的网站 美食杰 :http://www.meishij.net/
主要是看中了网站里有各种地区菜系的美食排行榜,而且为大家带来的是湖南的湘菜:
本来想试试看美团、饿了么之类的,结果饶了一圈也没找到相对应的排行榜单界面,在我的印象中是有这一类的网页的啊?
成果展示:
大家知道我本身就开发过公众号,所以就顺便给公众号加点新功能,发送「今天吃什么」,一定要准确哟,不然就是看电影的链接了,效果大概是这样的,吃什么美食是随机:
代码相关:
由于这个网站比较简单,没有什么反爬虫的措施,所以写起来也十分简单,
这是向网址发出请求:
用到了正则表达式,将我箭头上标记的,与正则表达式结合加一起看,就很容易明白了,爬取的内容是:美食名字,做法链接,图片:
图片下载:
在美食排行榜爬虫当中,我们有一项目标是:「下载美食图片到本地上」,有人肯定就觉得很难实现,因为图片又不是字符,如何以文本的形式爬下来呢? 其实,这里有一个误区,在计算机的世界里,一切的数据归根到底都是以“0”和“1”的二进制形式存在的。图片自然也不例外,任何一张图片,都是以“字节流 ”的形式,通过了一定的编码方式,被计算机排列组合,从而显示成我们肉眼所看到的图片。那么我们只要把图片数据从网上下载下来,然后再以二进制的格式写入到本地就可以啦。
给出一个图片下载的通用代码片段:
import requests def get_pic_from_url(url): #从url以二进制的格式下载图片数据 pic_content = requests.get(url,stream=True).content open('filename','wb').write(pic_content)
是不是很简单呢? 当然,你们也可以在这个基础上进行添加和完善,这是我的将图片保存到本地的代码:
微信公众号后台代码:
这只是一部分的代码,产生一个随机数匹配数据库对应的美食回复,具体的函数不明白,请先百度,还是不懂的话就私聊我!
这是一部分的成果展示,不要深夜流口水哟!
完整代码我已上传到 Github 上,每行代码我都有详细的注释。点击「阅读原文」就可以跳转到项目页面。
PS: 1、今天在调试微信公众号后台的代码时,因为看错了一个字符结果调 Bug 将近花了半个小时,所以导致了超过 12 点才发文了,非常抱歉!
2、功能不是在这个公众号的哟,因为本公众号之前的一些自动回复设置,如果接口服务器的话又要重新改,比较麻烦,所以如果想看功能效果的话,麻烦大家要关注下「电影来了呀」!
如果觉得文章还不错的话,还请大家点赞分享下。算是对「fightjiang」最大的支持!
每 天 分 享 Python 干 货