1. 访问主页:http://www.kfc.com.cn/kfccda/index.aspx
2. 在门店查询页面,进行请求的分析,http://www.kfc.com.cn/kfccda/storelist/index.aspx
3. 编写代码
python
import json
import requests
if __name__ == "__main__":
# 指定ajax-post请求的url(通过抓包进行获取)
url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
# 定制请求头信息,相关的头信息必须封装在字典结构中
headers = {
# 定制请求头中的User-Agent参数,当然也可以定制请求头中其他的参数
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
}
# 定制post请求携带的参数(从抓包工具中获取)
data = {
'cname': '',
'pid': '',
'keyword': '北京',
'pageIndex': '1',
'pageSize': '10'
}
# 发起post请求,获取响应对象
response = requests.post(url=url, headers=headers, data=data)
# 通过响应头可以粗略判断相应的结果类型应该是文本类型
# print(response.headers['Content-Type']) # text/plain; charset=utf-8
# print(response.text)
# json字符串反序列化为字典,方便后续的python处理
res = json.loads(response.text)
for item in res['Table1']:
print(item)
"""
{'rownum': 1, 'storeName': '京通新城', 'addressDetail': '朝阳路杨闸环岛西北京通苑30号楼一层南侧', 'pro': '24小时,Wi-Fi,点唱机,店内参观,礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 2, 'storeName': '黄寺大街', 'addressDetail': '黄寺大街15号北京城乡黄寺商厦', 'pro': 'Wi-Fi,点唱机,店内参观,礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 3, 'storeName': '四季青桥', 'addressDetail': '西四环北路117号北京欧尚超市F1、B1', 'pro': 'Wi-Fi,礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 4, 'storeName': '亦庄', 'addressDetail': '北京经济开发区西环北路18号F1+F2', 'pro': 'Wi-Fi,礼品卡,手机点餐', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 5, 'storeName': '石园南大街', 'addressDetail': '通顺路石园西区南侧北京顺义西单商场石园分店一层、二层部分', 'pro': 'Wi-Fi,店内参观,礼品卡,手机点餐', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 6, 'storeName': '北京南站', 'addressDetail': '北京南站候车大厅B岛201号', 'pro': 'Wi-Fi,礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 7, 'storeName': '北清路', 'addressDetail': '北京北清路1号146区', 'pro': '点唱机,礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 8, 'storeName': '巴沟', 'addressDetail': '巴沟路2号北京华联万柳购物中心一层', 'pro': 'Wi-Fi,礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 9, 'storeName': '欢乐谷', 'addressDetail': '南磨房乡小武基北路北京欢乐谷内欢乐时光区一层', 'pro': '礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
{'rownum': 10, 'storeName': '亦庄沃尔玛', 'addressDetail': '经济技术开发区文化园东路6号北京经开汇展中心1-2层', 'pro': 'Wi-Fi,店内参观,礼品卡', 'provinceName': '北京市', 'cityName': '北京市'}
"""
# 代码截止2023/5/31日运行无误