今天跟大家唠唠我这几天折腾的“薄荷网热量查询”的事儿。说白了,就是想更方便地知道自己每天吃进去多少热量,减肥嘛得对自己狠一点,也得对自己清楚一点。
我就是直接在薄荷App里查,用是能用,但总觉得不够顺手,尤其是想批量查,或者查一些比较生僻的食物,就有点费劲。而且老得打开App,也挺烦的。
所以我就寻思,能不能自己搞一个,更方便更快捷。说干就干,我先是研究了下薄荷App,看看能不能直接抓包啥的,把数据扒下来。结果发现不太行,人家也不是吃素的,防抓包做得挺严实。
这条路走不通,我就换了个思路,想着能不能用爬虫,直接爬薄荷网上的数据。毕竟网页版总比App好搞?
于是我就开始写爬虫代码,用的Python,requests库用来请求网页,BeautifulSoup用来解析HTML。这俩工具都是老熟人了,用起来还算顺手。
爬的过程中,遇到了几个坑。一个是网页结构比较复杂,得仔细分析HTML代码,找到热量数据对应的标签。另一个是薄荷网的反爬机制,稍微爬快一点,就会被封IP。
为了解决反爬的问题,我加了请求头,模拟浏览器访问,还用了代理IP,降低爬取频率。折腾了好几天,总算是把数据给爬下来了。
拿到数据之后,我把它存到了一个本地的CSV文件里。这样就可以用Excel或者其他工具打开,进行筛选和查询。
不过光是这样还不够方便,我又写了一个简单的命令行工具,可以用关键词搜索食物的热量。这样,我想查什么东西,直接在命令行输入,就能看到结果,不用再打开Excel了。
这个命令行工具是用Python写的,用了argparse库来解析命令行参数。代码很简单,也就几十行,但是用起来非常方便。
我还把这个工具分享给了几个朋友,他们也觉得挺好用的。
这回“薄荷网热量查询”的实践,虽然过程有点曲折,但也学到了不少东西。比如,怎么写爬虫,怎么应对反爬机制,怎么用Python做一些小工具。更重要的是,我对自己每天吃进去的热量,有了更清晰的认识,减肥也更有动力了。
这个工具还有很多可以改进的地方。比如,可以加入更多的食物数据,可以提供更丰富的查询方式,可以做一个图形界面等等。以后有时间了,再慢慢完善。