要爬取的数据是最近一段时间的飞机航班的最低价,并提供搜索功能。
利用谷歌浏览器的检查来获取最近一段时间飞机航班最低价json数据的url。
打开之后:
注意这里我们并不能用json模块将数据转换为json格式。如果转换为json格式会造成:
不能获取价格,日期是变化的,因此如果要用
text.get('Prices').get('date')
获取价格是不可能的。
那么只能用正则表达式分别匹配日期和价格,构造键值对,日期为键,价格为值:
'''
L获取日期,L2获取价格。价格在匹配时会把2017以及2018也匹配到,因此删掉
'''
L = re.findall(r'[0-9]{4}\-[0-9]{2}\-[0-9]{2}', lowerprice_html)
L1 = re.findall(r'\d{3,4}', lowerprice_html)
L2 = []
min = 500
'''
设置一个最小价格
'''
for i in range(len(L1)):
if int(L1[i]) == 2017 or int(L1[i]) == 2018:
pass
else:
L2.append(L1[i])
'''
构造键值对
'''
for i in range(len(L)):
InsertDict(D2, L[i], L2[i])
'''
爬取的价格与min值进行比较,如果比min的值小,更新min的值
'''
for k in D2:
if int(D2[k]) < int(min):
min = D2[k]
else: