一个蝉鸣沉醉的晚上,我和女神坐在沙发上,呆呆地看着鱼缸里的小鱼儿自由自在地游来游去。

突然,女神摸着自己的肚子,惊叹一声:哇!三个月大了!

我怔了一下,急切地问道:啥时候的事?怎么不告诉我?

“就这几个月呀!不知不觉就长了这么多膘!”

“我靠!我还以为你有了!”

女神嘤嘤地锤着我的胸,喊着要减肥!

“没问题,我助你!”

所谓“管住嘴,迈开腿!”减肥也是有方法论的,我们要用科学的方法减肥。管住嘴,不是不吃,而是要保证每天摄入的能量小于每天消耗的能量。

我还在说着方法论,女神已经打开手机,在网上搜减肥食谱了,看来是真的下决心了。

咱也不能落后呀,我看到她在一个叫“美食杰”的网页上看菜谱,我就说不需要这么麻烦,一页一页地翻太累了,给我5分钟,我给你这个网站上所有的减肥食谱。

准备食材

我打开电脑,在浏览器上输入网址,然后迅速地定位到“减肥食谱”的分类上:

打开这个菜谱页面,我发现这个页面是以卡片的形式来呈现每一个菜谱,然后底下是分页。

对于分页的页面,我们首先看 URL 的变化,如果 URL 有规律,那就很容易解决,这个页面的分页恰巧是 URL 上可以体现页码的变化(第二一页是 p2 结尾):

https://www.meishij.net/jiankang/jianfei/p2/

接着,我们来看每个菜谱的细节:

我们可以看到这个页面很有规律,每个菜谱和其对应的材料都是一样的格式。

有了这些基础,我的思路就很清晰了:

通过拼接 URL 实现分页查询,通过解析相同格式的 HTML 页面来获取菜谱和材料。

烹饪

我写一个方法,请求页面,然后从页面中解析出菜名和材料,由于不同的菜谱中使用的材料可能会有重复,所以我对材料做了去重处理。


import requests
from lxml import etreedef getRecipe(url, pageNum, foodFileName, meterialFileName):foods = []meterials = []for i in range(1, pageNum):rurl = url % i  # 构建网址,用网址前半部分相同的,拼接后边的数字res = requests.get(rurl).text  # 用requests库的get函数来获得网页数据res_xpath = etree.HTML(res)  # 将获得的数据转化为xpath格式foods.extend(res_xpath.xpath('//*/a[@class="list_s2_item_info"]/strong/text()'))  # 用浏览器获得所需信息的xpath位置meterial = res_xpath.xpath('//*/a[@class="list_s2_item_info"]/span[@class="sc"]/text()')for m in meterial:meterials.extend(m.split(','))for food in foods:  # 依次从获得的总食谱中提取菜名with open(foodFileName + ".txt", 'a', encoding="utf-8") as f:f.write(food + '\n')undupMeterials = list(set(meterials))  # 对材料去重for m in undupMeterials:with open(meterialFileName + ".txt", 'a', encoding="utf-8") as f:f.write(m + '\n')return foods, undupMeterialsfitfoods, fitmeterials = getRecipe('https://www.meishij.net/jiankang/jianfei/p%s/', 6, 'fitfood', 'fitmeterial')

下碟

最后的结果我将菜谱和食材分别写到两个文件中,然后将文件发给女神了。

女神掐表一算,说:亲爱的,你太快了!

我翻了一个白眼,说到:下次不要这样说,要说“亲爱的,你太帅了!”。

她锤了了一下,红着脸说“你真坏!”

Python日常-女神要减肥,我打辅助!相关推荐

  1. 使用 Python 为女神挑选口红 ,成功把女神拿下,你学会了吗

    口红对于女生来说永远不嫌多,而男生也搞不明白珊瑚红.番茄色.斩男色等等颜色有什么区别,不都是红色么?当送给女神的口红是她不适合的,那结果就是口红进入垃圾箱还算是轻的,重则拉黑处理.男生们也不用着急,我 ...

  2. python写一个表白程序_用Python个女神做一个表白神器

    用Python给女神表白 情人节刚刚过去,但男同胞们对女神的暗恋愈加热烈,想尽一切办法表白,今天,咱们就用Python制作一个表白神器. 程序介绍 运用pygame制作一个小游戏,当女神用鼠标点击&q ...

  3. python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源)

    python+opencv别踩白块儿游戏辅助,一天一个opencv小项目(已开源) 见链接

  4. Python日常+笔面试

    Python日常学习 三维转二维: 例:X(200,200,106)->newX(40000,106) newX = np.reshape(X, (-1, X.shape[2])) 二维变三维: ...

  5. Python日常(13):字符串的格式化输出(format方法和%输出)

    目录 前沿 字符串的格式化输出 (1)format方法 ①基本输出格式 ②实例 (2)%输出方法 ①基本输出格式 ②实例 作者的话 参考文献 前沿 前面我们基本上已经把python基础的操作初略的说完 ...

  6. python日常总结

    项目场景: `python日常简单库的使用如:txt文件操作.numpy操作.字典操作.取整操作等. python读写txt # 1.读取所有行 with open('test.txt','r', e ...

  7. python日常记账本源代码,基于PySide6,支持快速查询、绘制图表

    python日常记账本源代码,基于PySide6(Qt for Python 6)的账本,界面简洁.功能强大,支持保存文件.快速查询.绘制图表等,是平时记账的不错选择.账目查询.账本编辑.添加/删除. ...

  8. Python日常用法—将列表信息写入到csv文件、列表中的元素直接更改

    Python日常用法-将列表信息写入到csv文件 1.模板 # 编写数据 import csvdata_list = [{'皇马球员': 'C罗', '号码': '7', '国籍': '葡萄牙'}, ...

  9. 【python日常学习】爬取4K桌面壁纸

    [python日常学习]爬取4K桌面壁纸 这个网站都是4K的桌面壁纸. 不多说,直接上代码 import re import requests import osdef get_page():page ...

最新文章

  1. URAL 1203 Scientific Conference(贪心 || DP)
  2. python图像配准的原理_python利用sift和surf进行图像配准
  3. 阿里云E-HPC联合安世亚太、联科集团共建云超算生态
  4. pam mysql编译安装_pam_mysql编译过程排错
  5. Docker 常见问题
  6. java 鼠标单击_不通过鼠标点击,单纯的通过Java代码生成鼠标单击事件
  7. boost::function模块右值的测试程序
  8. 扫地机器人湿地_什么品牌的扫地机器人性价比最高?
  9. Django 上传附件报The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS错误
  10. 打造AS酷炫dimens适配插件
  11. mysql下的常用操作
  12. hdu 4928 Series 2 (优化+模拟)
  13. 抖音云蹦迪源码/很火的直播打赏类项目源码
  14. 汽车域控制器架构和OTA的心脏:网关的四大豪门(上)
  15. 媒体查询之响应式布局
  16. 云队友丨任正非内部演讲:星光不问赶路人
  17. 温一壶月光下的酒——林清玄
  18. clientX、pageX、screenX以及offsetX区别
  19. 求薪水最高的第6到第10个人
  20. [圣诞大礼]Macintosh苹果机精品游戏合集

热门文章

  1. Word 排版:插入题注
  2. HIT-2022spr-近世代数期末补天
  3. 逆战无法显示服务器,玩逆战游戏不显示小地图。怎么办?
  4. python连接sql server报20002错误_数据库连接错误:20009, b'DB-Lib error message 20009
  5. MATLAB神经网络学习笔记之:对线性神经网络进行自适应训练
  6. Python将对象的值传给列表,打印列表返回<__main__.Card object at 0x000001AA99E4E438>
  7. Ofbiz Web详解(Ofbiz后门页)
  8. Unity 制作抖音同款 罗马时钟
  9. MIPS 指令集(共 31条)
  10. java基于SpringBoot+Vue+nodejs的网上订菜买菜果蔬商城系统 element