简单获取商家地址(kfc)
基本的查找url,请求方式我也是在上面的链接中学到的,在此就不赘述了,只是重点分享和记录一下自己遇到的一些bug
代码
import requests
url = '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 = False
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']:
flag = True
cnt += 1
print('商店名称:{}'.format(table['storeName']), '详细地址:{}'.format(table['addressDetail']))
page += 1
print('共有{}个商家在{}'.format(str(cnt), kw))
- 注意url最后保留的部分
- 对所有页面的获取
这里用了
while
语句来实现对某一个地方所有店铺的获取,注意这里用for table in data_json['Table1']
语句即可实现对这里存在的店铺的输出,一个空的店铺是不满足这个for循环语句的。