如何将爬虫获取的数据写入Excel,这一点我在爬虫文章几乎都是采用这种方式来进行操作的
写入Excel的目的是为了后续更加方便的使用pandas对数据进行清洗、筛选、过滤等操作。
为进一步数据研究、可视化打基础。
1. 自定义写入Excel
python写入Excel的方式有很多,常用的支持python操作的库有
xlsxwriter、pandas、openpyxl
今天咱们只介绍我常用到的openpyxl
1. 创建workbook
2.创建worsheet
3.数据写入sheet
4.数据写入sheet
5.保存到excel
既然说到爬虫数据写入Excel。那我们直接上爬虫案例
网页的分析和数据的爬取我们可以参考:
Python实战|腾讯招聘你干什么?python可视化告诉你
如图我们现在已经成功的将数据打印出来了,接下来我们考虑的就是如何将这些数据保存到Excel中。
前面说到我们这里使用的Python库是openpyxl来实现这一操作。
所以第一步
openpyxl的下载
或者自行下载whl文件安装
https://www.lfd.uci.edu/~gohlke/pythonlibs/
导入库
使用import导入openpyxl库,为后续方便调用,
可以使用as关键字来简写库名
import openpyxl as op
1. 创建workbook
ws = op.Workbook()
2.创建worsheet
wb = ws.create_sheet(index=0)
3. 头文件
wb.cell(row=1, column=1, value='职位名称')
wb.cell(row=1, column=2, value='国家')
wb.cell(row=1, column=3, value='城市')
wb.cell(row=1, column=4, value='职位分类')
wb.cell(row=1, column=5, value='职位更新时间')
wb.cell(row=1, column=6, value='职位要求')
3.数据写入sheet
# 加入count是为了换行写入数据
count = 2
# 要写入excel的数据
post_name = job['RecruitPostName'] # 职位名称
country_name = job['CountryName'] # 国家
loc_name = job['LocationName'] # 城市
category_name = job['CategoryName'] # 职位分类
last_up_time = job['LastUpdateTime'] # 职位更新时间
responsibility = job['Responsibility'] # 职位要求
# 打印获取到的数据
print(post_name, country_name, loc_name, category_name, last_up_time, responsibility)
# 将数据写入到下一行
wb.cell(row=count, column=1, value=post_name)
wb.cell(row=count, column=2, value=country_name)
wb.cell(row=count, column=3, value=loc_name)
wb.cell(row=count, column=4, value=category_name)
wb.cell(row=count, column=5, value=last_up_time)
wb.cell(row=count, column=6, value=responsibility)
# count加1,进入到下一行写入数据
count += 1
4.保存excel
# 保存数据
ws.save('腾讯职位.xlsx')
四步走轻松将你的数据写入到Excel
还有更多的表头、边框、颜色设置等在此不再赘述哈
有需要的可自行百度哈。
2. 函数式写入Excel
import openpyxl as op
id = [1, 2, 3]
name = ['张三', '李四', '王五']
age = [21, 20, 122]
address = ['北京', '上海', '广州']
infos = [id, name, age, address]
def op_toexcel(data): # openpyxl库储存数据到excel
wb = op.Workbook() # 创建工作簿对象
ws = wb['Sheet'] # 创建子表
ws.append(['序号', '姓名', '年龄', '住址']) # 添加表头
for i in range(len(data[0])):
d = data[0][i], data[1][i], data[2][i], data[3][i]
ws.append(d) # 每次写入一行
wb.save('测试.xlsx')
3. pandas写入Excel
id = [1, 2, 3]
name = ['张三', '李四', '王五']
age = [21, 20, 122]
address = ['北京', '上海', '广州']
infos = [id, name, age, address]
# pandas库储存数据到excel
def pd_toexcel(data):
# 用字典设置DataFrame所需数据
dfData = {
'序号': data[0],
'姓名': data[1],
'年龄': data[2],
'住址': data[3]
}
# 创建DataFrame
df = pd.DataFrame(dfData)
# 存表,去除原始索引列(0,1,2...)
df.to_excel('测试.xlsx', index=False)
如有不足之处,烦请大佬们不吝赐教。及时指正。一起进步!