安装
pip install tqdm
code:
import json
from urllib import request, parse
from tqdm import tqdm
class GetKFCAddress:
headers = {
'Referer': 'http://www.kfc.com.cn/kfccda/storelist/index.aspx',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36',
'Cookie': "ASP.NET_SessionId = pk43tx2lplhrzsdcnljl1gc5;Hm_lvt_1039f1218e57655b6677f30913227148 = 1585564393;Hm_lpvt_1039f1218e57655b6677f30913227148 = 1585564855;KLBRSID = a34b6eb1eda6f7a05724ede2e440cdc7 | 1585617345 | 1585617345",
'X-Requested-With': 'XMLHttpRequest',
}
def __init__(self,city,path,page=1):
self.city = city
self.url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
self.path = path
self.page = page
def prepare_request(self,post_data):
encode_post_data = parse.urlencode(post_data).encode('utf-8')
res = request.Request(self.url, data=encode_post_data, headers=GetKFCAddress.headers)
req = request.urlopen(res)
return req
def saveaddress(self,json_obj):
for film_dict in tqdm(json_obj['Table1']):
title = film_dict['storeName']
rate = film_dict["addressDetail"]
with open(self.path, "a", encoding='utf-8') as fp:
fp.write("storeName:{}餐厅, addressDetail:{}".format(title, rate) + '\n')
def getaddress(self):
while True:
post_data = {
'cname':'',
'pid':'',
'keyword':f'{self.city}',
'pageIndex': f'{self.page}',
}
req = self.prepare_request(post_data)
if not req.code == 200:
return '获取失败!'
text = req.read().decode('utf-8')
json_obj = json.loads(text)
print(json_obj['Table1'])
if not json_obj['Table1']:
break
else:
self.page += 1
self.saveaddress(json_obj)
if __name__ == '__main__':
path = 'KFC_Address.txt'
city = '深圳'
get_kfc_address = GetKFCAddress(city,path)
get_kfc_address.getaddress()