爬虫下来的数据是json文件,所以简单整理一下json形式的存储/读取以及转化方面的知识
# 案例数据
list_city =
[
{'node_name': '鞍山', 'node_href': 'https://anshan.anjuke.com/'},
{'node_name': '安阳', 'node_href': 'https://anyang.anjuke.com/'},
{'node_name': '安庆', 'node_href': 'https://anqing.anjuke.com/'},
{'node_name': '安康', 'node_href': 'https://ankang.anjuke.com/'},
{'node_name': '安顺', 'node_href': 'https://anshun.anjuke.com/'}
]
list_city
1)json转换为pandas对象
data = pd.DataFrame(list_city)
data
2)json存为excel文件(eg:csv)
data = pd.DataFrame(list_city1)
data.to_csv('E:/anjuke',index=False)
3)存为json文件
import json # 用于将列表字典(json格式)转化为相同形式字符串,以便存入文件
# 将list_city这个json格式的python对象转化为字符串
s = json.dumps(list_city[:5], indent = 2, ensure_ascii=False)
# 将字符串写入文件
with open('E:/anjuke2.json', 'w', encoding = 'utf-8') as f:
f.write(s)
4)读取json文件转为pandas
# 使用json.loads()方法读取,并转化为pandas对象
import pandas as pd
with open('E:/anjuke/anjuke.json',encoding='utf-8') as f:
s = f.read()
data = json.loads(s)
data = pd.DataFrame(data)
data
5) 改成函数形式
#保存爬取数据
def save_file(title,data_div):
path_new='E:/anjuke' # 新文件夹路径
if os.path.exists(path_new): # 如果存在文件夹则跳过,不存在则创建新文件夹
pass
else:
os.mkdir(path_new)
path_file_name =str(path_new +'/'+ title + '.csv') # 存储的文件名
file_data=pd.DataFrame(data_div) # 转为pandas对象
file_data.to_csv(path_file_name,index=False) # 存为csv文件
print('*****存储成功******')
title = '安居客城市列表'
save_file(title,list_city[:5]) #调用自定义函数,存储数据