整个程序分两部分:实现城市名接龙(兼容谐音)和爬取城市医院信息。
城市接龙部分:
城市接龙需要兼容谐音,那么就必须用到xpinyin模块中的Pinyin类方法,负责将中文转换为拼音;而城市接龙的实现便是通过将初次输入的城市名的最后一个字的拼音跟所有已转换成拼音的城市名头一个字做对比,拼音相等(谐音)即是我们要的接龙城市,代码实现部分如下:
#自动寻找下一个接龙城市
def get_NextCiyt(c , total_CityPinyin_list , city_list , city_list_copy):
city_list_copy.remove(c) #以防重复下载
if not city_list_copy: #下载完所有城市后,返回None停止请求
return None
in_py_list = p.get_pinyin(c , ' ').split(' ')
total_city_len = len(total_CityPinyin_list)
next_city = None
#寻找接龙城市
for i in range(total_city_len):
if in_py_list[1] == total_CityPinyin_list[i][0]:
if total_city_len == len(city_list):
next_city = city_list[i]
break
if next_city:
return next_city
else:
#当无法接龙时,随机选一城市
print('not found city')