时隔几个月终于对_下厨房_下手咯!!!
原创
©著作权归作者所有:来自51CTO博客作者黑夜中的潜行者的原创作品,请联系作者获取转载授权,否则将追究法律责任
下厨房-菜谱
- 为何现在动手呢?
- 主要库名
- 思路
- 完整的python代码
为何现在动手呢?
说来话长,由于本人不怎么会做菜,基本也不做菜,所以迟迟没去看,纯属练练手没别的意思
有做菜需求,或是喜欢做菜的朋友,请用浏览器访问 下厨房. 请支持正版
主要库名
requests
lxml
fake_useragent
思路
二次解析
下面奉上完成代码 ps:不要随便使用,以免对他人和自己造成困扰
完整的python代码
# -*- coding: utf-8 -*-
"""
@Time : 2020/6
@File : XiaChuFang.py
@Software: PyCharm
"""
import os
import requests
from lxml import etree
from fake_useragent import UserAgent
import time
class kitchen(object):
u = 0
def __init__(self):
self.url = "https://www.xiachufang.com/explore/?page={}"
# 使用 UserAgent 库 生成不同的 请求头 ‘User-Agent’
ua = UserAgent(verify_ssl=False)
for i in range(1, 50):
self.headers = {
'User-Agent': ua.random,
}
def get_page(self, url):
"""
发送请求 获取响应
:param url:
:return:
"""
res = requests.get(url=url, headers=self.headers)
html = res.content.decode("utf-8")
return html
def parse_page(self, html):
"""
解析数据
:param html:
:return:
"""
parse_html = etree.HTML(html)
image_src_list = parse_html.xpath('//li/div/a/@href')
for i in image_src_list:
url = "https://www.xiachufang.com/" + i
html1 = self.get_page(url) # 对具体链接发起请求
parse_html1 = etree.HTML(html1)
num = parse_html1.xpath('.//h2[@id="steps"]/text()')[0].strip()
ingredients = parse_html1.xpath('.//td//a/text()')
self.u += 1
food_info = '''
第 %s 种
菜 名 : %s
原 料 : %s
下 载 链 接 : %s
=================================================================
''' % (str(self.u), num, ingredients, url)
# 判断 下厨房菜谱.doc 文件是否存在 不存在则创建
filename = "./下厨房菜谱.doc"
if not os.path.exists(filename):
os.system(r"cd.>{}".format(filename))
f = open('./下厨房菜谱.doc', 'a', encoding='utf-8')
f.write(str(food_info))
print(str(food_info))
f.close()
def main(self):
start_page = int(input("起始页:"))
end_page = int(input("终止页:"))
for page in range(start_page, end_page + 1):
url = self.url.format(page)
html = self.get_page(url)
self.parse_page(html)
time.sleep(1.4)
print("====================================第 %s 页 爬 取 成 功====================================" % page)
if __name__ == '__main__':
imageSpider = kitchen()
imageSpider.main()
觉得还可以 请点个👍哟