需求:爬取肯德基餐厅查询http://www.kfc.com.cn/kfccda/index.aspx中指定地点的餐厅数据
if __name__ == "__main__":# UA伪装:将对应的User-Agent封装到一个字典中headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/72.0.3626.121 Safari/537.36 '}url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'# 处理url携带的参数:封装到字典中kw = input('请输入一个地区:')kfc_list = [] # kfc餐厅地址for page in range(1, 3):page = str(page)data = {'cname': '','pid': '','keyword': kw,'pageIndex': page,'pageSize': '10'}# 请求发送response = requests.post(url=url, data=data, headers=headers)# 获取响应数据:json()方法返回的是obj(如果确认响应数据是json类型的,才可以使用json())list_data = response.json()kfc_list.append(list_data)# 持久化存储fileName = kw + 'kfc.json'fp = open(fileName, 'w', encoding='utf-8')json.dump(kfc_list, fp=fp, ensure_ascii=False)count = 1 # 餐厅个数计数# 打印所有餐厅名称和地址for dic in kfc_list:for table1 in dic['Table1']:print("No." + str(count))count = count + 1print('名称:'+table1['storeName'])print('地址:' + table1['addressDetail'])print('over!!!')
