原理是利用requests模块对门店查询页面发送post请求,对返回的json格式数据进行处理得到所需结果。由于初学python,程序难免有不完善之处,请大家见谅。
先展示一下爬取结果:
在此处笔者利用vscode运行程序。如果无法保存数据,请尝试使用其他IDE;如果输入城市的值不为汉字或字母,则程序使用默认值进行爬取
代码展示如下:
import requests
import sys
import os
def rawer(inp):
null = ""
tmp = {
"cname": "", "pid": "", "keyword": inp, "pageIndex": 1, "pageSize": 10}
bak = requests.post(url=url, data=tmp, headers=headers)
raw = eval(bak.text)
alli = int(raw['Table'][0]['rowcount'])
return alli
def droper(org):
null = ""
p_dict = eval(org.text)
p_dict.pop('Table') # 扔掉无用元素
return p_dict
def null_checker(default):
param = input()
if param == "":
return default
else:
return param
def printer(label):
i = 0
while i < int(label):
print('序号:', original_dict['Table1'][i]['rownum'], end=' ')
print('店名:', original_dict['Table1'][i]['storeName'], end=' ')
print('地址:', original_dict['Table1'][i]['addressDetail'], end=' ')
print('特色:', original_dict['Table1'][i]['pro'])
i = i &