需求:爬取肯德基餐厅查询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 + 1
print('名称:'+table1['storeName'])
print('地址:' + table1['addressDetail'])
print('over!!!')