肯德基有这么赚钱吗?我用Python才知道全市有几百家门店。

156 阅读2分钟

前言

****对于我这种不喜欢吃汉堡薯条的人来讲,确实不知道肯德基居然可以随处可见!那么它真的有这么赚钱吗?所以今天突发奇想,我用Python来查一查它在我们市里究竟有多少家门店!话说前几天在群里就有看到这个外包信息!这种外包居然都能赚三百!

编辑

相关模块


 requests

   csv

另外就是自带的模块了!

由于此次案例过于简单!这里就不过多的去给大家介绍详细流程了,应该都会!所以直接上代码看结果吧!

完整源码

"""
import requests    # 第三方的模块  数据请求
from pprint import pprint  # 内置模块  不需要安装  格式化输出
import csv  # 内置模块  不需要安装 保存




with open('肯德基.csv', mode='a', encoding='utf-8', newline='') as f:
    f.write('省份, 城市, 商圈, 详细位置, 服务\n')

# 构建一个发送请求的函数-->解决代码冗余(啰嗦)
def get_response(data):
    """
    def 定义函数的关键字
    :param data: 参数
    :return: 函数的返回值
    """

    url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'

    headers = {
        'Referer': 'http://www.kfc.com.cn/kfccda/storelist/index.aspx',
        # 浏览器的身份标识
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'
    }

    response = requests.post(url=url, headers=headers, data=data)
    return response


# 构建翻页逻辑函数
def get_page(keyword):

    data = {
            'cname': '',
            'pid': '',
            'keyword': keyword,
            'pageIndex': '1',
            'pageSize': '10'
        }
    json_data = get_response(data=data).json()
    # pprint(json_data)
    rowcount = json_data['Table'][0]['rowcount']
    if rowcount % 10 > 0:
        page_num = rowcount // 10 + 1
    else:
        page_num = rowcount // 10

    return page_num

# get_page('武汉')

# 解析数据
def get_info(keyword):
    page_num = get_page(keyword)
    for page in range(1, page_num + 1):
        data = {
            'cname': '',
            'pid': '',
            'keyword': keyword,
            'pageIndex': str(page),
            'pageSize': '10'
        }
        json_table = get_response(data=data).json()
        json_lists = json_table['Table1']
        for json_list in json_lists:
            # 省份
            provinceName = json_list['provinceName']
            # 城市
            cityName = json_list['cityName']
            # 商圈
            storeName = json_list['storeName']
            # 具体位置
            addressDetail = json_list['addressDetail']
            # 服务
            pro = json_list['pro']
            print(provinceName, cityName, storeName, addressDetail, pro)
            # with  对上-->打开文本 对下--> 关闭文件
            # as 取小名
            with open('肯德基.csv', mode='a', encoding='utf-8', newline='') as f:
                csv_write = csv.writer(f)
                csv_write.writerow([provinceName, cityName, storeName, addressDetail, pro])



# get_info('北京')
# 测试
if __name__ == '__main__':
    cities = ['长沙', '武汉', '北京', '天津', '上海']
    for city in cities:
        get_info(city)

效果展示

编辑

 属实没想到啊,在长沙能有这么多的分店能比的估计也只有茶颜悦色了!话说如果有小伙伴来长沙玩记得喝一杯哦!幽兰拿铁还是相当不错!

完整代码都贴了,如有报错可关注公众号:python源码 免费解答哦 所以说会爬虫饿不死自己这句话是真的!