对中国境内所有地区KFC门店基本信息的统计(简略版)

在这里插入图片描述
我们要获取每个地区的kfc信息就要先获取中国一共有哪些地区

中国所有城市名称获取

import requests
from lxml import etreewith open(f'./省份.txt', 'w') as fp:fp.write('')
with open(f'./城市.txt', 'w') as fp:fp.write('')url1='http://www.kfc.com.cn/kfccda/storelist/index.aspx'#页面网址
city=[]
res1=requests.get(url1).text
tre=etree.HTML(res1)
sheng=tre.xpath('//*[@id="container"]/div[1]/div[2]/div/div[1]/div[1]/div/div[3]/ul/li/strong/text()')
#得到页面源码
n=len(sheng)
for i in range(1,n+1):shi=tre.xpath(f'//*[@id="container"]/div[1]/div[2]/div/div[1]/div[1]/div/div[3]/ul/li[{i}]/div/a/text()')#使用xpath对信息获取for s in shi:city.append(sheng[i-1]+'-'+s)
print(city)
for i in city:with open(f'./城市.txt', 'a') as fp:fp.write(i+'\n')
for i in sheng:with open(f'./省份.txt', 'a') as fp:fp.write(i+'\n')

现在我们已经有了每个城市的名字我们只需要将他们替换到请求接口的data中即可获取每个地区的kfc门店基本信息

每个地区门店基本信息获取

import shutil
import time
import requests
import os
from multiprocessing.dummy import Pooldef RemoveDir():    #用来删除文件夹中的所有内容try:shutil.rmtree('./city')#删除文件夹except:passos.mkdir('./city')#创建文件夹amelist = []file = open('./省份.txt', "r", encoding="GBK")file = file.readlines() #读取所有文件按行for line in file:line = line.strip('\n')#删除掉line里的\namelist.append(line)#将line添加到列表amelist中for i in amelist:filepath=f'./city/{i}'os.mkdir(filepath)#创建名字为filepath的文件夹def zhu(name):s=str(name).split('-')#将name以-切片print(1)data={'cname': f'{s[1]}','pid': '','pageIndex': '1','pageSize': '900'}res=requests.post(url,data=data).json()#post方法获取数据url为网址data为负载.json为以json格式获取数据print(res)if str(res['Table'][0]['rowcount'])!='0':#如果res['Table'][0]['rowcount']==0说明这个城市没有店不在进行下面操作fort=[]#保存店铺的名称for i in res['Table1']:if str(i['addressDetail']) not in fort:#如果当前店铺名称已经保存过说明重复不在进行以下程序with open(f'./city/{s[0]}/{s[1]}.txt', 'a+') as fp:print(str(i['storeName'])+'%'+str(i['addressDetail'])+'%'+str(i['pro']))fp.write(str(i['storeName'])+'%'+str(i['addressDetail'])+'%'+str(i['pro'])+'\n')fort.append(str(i['addressDetail']))with open(f'./city/{s[0]}/{s[1]}.txt', 'a+') as fp:#以a+打开文件追加模式fp.write(str(len(fort)))time.sleep(0.5)RemoveDir()
number=[]
url='http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'
namelist=[]
file = open('./城市.txt', "r", encoding="GBK")#r代表以只读模式打开文件 encoding="GBK"以GBK格式读取文件
file = file.readlines()
for line in file:line = line.strip('\n')namelist.append(line)
print(namelist)
pool = Pool(3)                                     #开启线程池# 定义循环数
origin_num = [x for x in namelist]                #每一个货物开启一个线程# 利用map让线程池中的所有线程‘同时’执行calc_power2函数
#zhu为函数zhu origin_num为任务列表
pool.map(zhu, origin_num)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/526059.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 拖动事件

文章目录 1 自定义控件 TextEdit2 实现打开文件功能3 实现鼠标滚轮放大字体 QEvent::DragEnter 当拖动文件进入到窗口/控件中时,触发该事件,它对应的子类是QDragEnterEvent QEvent::DragLeave 当拖动文件离开窗口/控件时,触发该事件&#xff…

鸿蒙OpenHarmony HDF 驱动开发

目录 序一、概述二、HDF驱动框架三、驱动程序四、驱动配置坚持就有收获 序 最近忙于适配OpenHarmonyOS LiteOS-M 平台,已经成功实践适配平台GD32F407、STM32F407、STM32G474板卡,LiteOS适配已经算是有实际经验了。 但是,鸿蒙代码学习进度慢下…

数字化转型导师坚鹏:科技金融政策、案例及数字化营销

科技金融政策、案例及数字化营销 课程背景: 很多银行存在以下问题: 不清楚科技金融有哪些利好政策? 不知道科技金融有哪些成功案例? 不知道科技金融如何数字化营销? 课程特色: 以案例的方式解读原…

万用表数据导出变化曲线图——pycharm实现视频数据导出变化曲线图

万用表数据导出变化曲线图——pycharm实现视频数据导出变化曲线图 一、效果展示二、环境配置三、代码构思四、代码展示五、代码、python环境包链接 一、效果展示 图1.1 效果展示 (左图:万用表视频截图;右图:表中数据变化曲线图&am…

react实战——react旅游网

慕课网react实战 搭建项目问题1.按照官网在index.tsx中引入antd出错?2.typescript中如何使用react-router3.react-router3.1 V63.2 V53.3V6实现私有路由 4.函数式组件接收props参数时定义数据接口?5.使用TypeScript开发react项目:6.要使一个组…

使用Tokeniser估算GPT和LLM服务的查询成本

将LLM集成到项目所花费的成本主要是我们通过API获取LLM返回结果的成本,而这些成本通常是根据处理的令牌数量计算的。我们如何预估我们的令牌数量呢?Tokeniser包可以有效地计算文本输入中的令牌来估算这些成本。本文将介绍如何使用Tokeniser有效地预测和管…

three.js 包围盒

效果&#xff1a; 想要显示包围盒的样子&#xff1b;需要借助 Box3Helper 辅助显示&#xff1b; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs"></div></div><…

探讨系统测试的最佳实践与思维模式!

这是测试活动过程详解系列的最后一篇文章。之前的想法&#xff0c;是对测试过程各重要环节进行拆解&#xff0c;然后介绍这个环节重点要做的事情&#xff0c;为什么要做这些事&#xff0c;以及注意事项。 前面几篇文章分别介绍了单元测试、集成测试、回归测试阶段要解决的问题…

剑指offer经典题目整理(二)

一、斐波那契数列&#xff08;fib&#xff09; 1.链接 斐波那契数列_牛客题霸_牛客网 (nowcoder.com) 2.描述 斐波那契数列就是数列中任意一项数字&#xff0c;都会等于前两项之和&#xff0c;满足f(n) f(n-1) f(n-2) 的一个数列&#xff0c;例如&#xff1a;1 1 2 3 5 8…

Ubuntu平铺左、右、上、下、1/2、1/4窗口(脚本)

前言 之前因为一直在用Ubuntu 18或者Ubuntu 20然后发现装了GNOME插件后&#xff0c;电脑在使用过程中&#xff0c;会时不时的卡死&#xff08;鼠标没问题&#xff0c;键盘输入会有10-20秒的延迟&#xff09;频率基本是一小时一次&#xff0c;因为这种卡顿会很容易打断思路&…

首屏性能优化:提升用户体验的秘籍

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Chrome中如何导出和导入书签

导出书签 如下图所示&#xff1a; 右上角三点->书签和清单->书签管理器->右上角三点->导出书签 然后你选择保存地址即可。打开后如下&#xff1a; 导入书签 如下图所示&#xff1a; 右上角三点->书签和清单->导入书签和设置->选择以前导出的书签&…