前言:
在放假时 ,经常想尝试一下自己做饭,下厨房这个 址是个不错的选择。下厨房是必选的 址之一,主要提供各种美食做法以及烹饪技巧,包含种类很多。今天教大家去爬取下厨房的菜谱 ,保存在world文档,方便日后制作自己的小菜谱。
一、项目目的
获取菜谱,并批量把菜 名、 原 料 、下 载 链 接 、下载保存在world文档。
二、项目准备
软件:PyCharm
需要的库:requests、lxml、fake_useragent、time
站如下:
点击下一页时,每增加一页page自增加1,用{}代替变换的变量,再用for循环遍历这 址,实现多个 址请求。
三、反爬措施的处理
主要有两个点需要注意:
1、直接使用requests库,在不设置任何header的情况下, 站直接不返回数据
2、同一个ip连续访问多次,直接封掉ip,起初我的ip就是这样被封掉的。为了解决这两个问题,最后经过研究,使用以下方法,可以有效解决。
(1)获取正常的 http请求头,并在requests请求时设置这些常规的http请求头。
(2)使用 fake_useragent ,产生随机的UserAgent进行访问。
四、项目实现
1、定义一个class类继承object,定义init方法继承self,主函数main继承self。导入需要的库和 址,代码如下所示。
2、随机产生UserAgent。
3、发送请求 获取响应, 页面回调,方便下次请求。
4、xpath解析一级页面数据,获取二级页面 址。
5、for遍历,定义一个变量food_info保存,获取到二级页面对应的菜 名、 原 料 、下 载 链 接。
6、保存在world文档 。
7、调用方法,实现功能。
8、项目优化
(1)方法一:设置时间延时。
(2)方法二:定义一个变量u,for遍历,表示爬取的是第几种食物。(更清晰可观)。
五、效果展示
1、点击绿色小三角运行输入起始页,终止页。
2、运行程序后,结果显示在控制台,如下图所示。
3、将运行结果保存在world文档中,如下图所示。
4、双击文件,内容如下图所示。
最后总结:
2、介绍了如何去拼接字符串,以及列表如何进行类型的转换。
3、代码很简单,希望能够帮到你。
4、欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。
5、可以选择自己喜欢的分类,获取自己喜欢的菜谱,每个人都是厨师。
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览210539 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!