简单获取商家地址(kfc)
学习源址
基本的查找url,请求方式我也是在上面的链接中学到的,在此就不赘述了,只是重点分享和记录一下自己遇到的一些bug
代码
import requestsurl = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ''(KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'
}kw = input('enter the query place: ')# for page in range(1, 10):
# data = {
# 'cname': '',
# 'pid': '',
# 'keyword': kw,
# 'pageIndex': str(page),
# 'pageSize': '10',
# }
#
# rsp = requests.post(url=url, data=data, headers=header)
# data_json = rsp.json()
# for table in data_json['Table1']:
# # if table['storeName'] != "":
# # print('商店名称:{}'.format(table['storeName']), '详细地址:{}'.format(table['addressDetail']))
# # else:
# # print("none")
# print('商店名称:{}'.format(table['storeName']), '详细地址:{}'.format(table['addressDetail']))flag = True
page = 1
cnt = 0
while flag:flag = Falsedata = {'cname': '','pid': '','keyword': kw,'pageIndex': str(page),'pageSize': '10',}rsp = requests.post(url=url, data=data, headers=header)data_json = rsp.json()for table in data_json['Table1']:flag = Truecnt += 1print('商店名称:{}'.format(table['storeName']), '详细地址:{}'.format(table['addressDetail']))page += 1print('共有{}个商家在{}'.format(str(cnt), kw))
- 注意url最后保留的部分
- 对所有页面的获取
这里用了
while
语句来实现对某一个地方所有店铺的获取,注意这里用for table in data_json['Table1']
语句即可实现对这里存在的店铺的输出,一个空的店铺是不满足这个for循环语句的。