時隔幾個月終於對_下廚房_下手咯!!!

爲何現在動手呢?

  說來話長,由於本人不怎麼會做菜,基本也不做菜,所以遲遲沒去看,純屬練練手沒別的意思
  有做菜需求,或是喜歡做菜的朋友,請用瀏覽器訪問 下廚房. 請支持正版

主要庫名

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()

覺得還可以 請點個👍喲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章