Skip to content

1. 访问主页:http://www.kfc.com.cn/kfccda/index.aspx

1832670557657628672.png

2. 在门店查询页面,进行请求的分析,http://www.kfc.com.cn/kfccda/storelist/index.aspx

1832670558899142656.png

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日运行无误