python 网络爬虫及可视化之实现(四)数据存储模块及主程序

5 数据存储模块

主要完成数据存储到指定的Excel文件,为数据分析和可视化准备数据。
下一步将完善数据存储到sql数据库中

 
#数据存储模块
class DataSaver:
    @staticmethod
    def save_to_excel(data, filename):
        data.to_excel(filename, index=False)

5 主程序

主程序主要完成以下功能:分析要爬取和各页信息获取详情页url、爬取各详情页信息、存储到Excel文档。

urls = []  # 所有解析的URL列表
list_all_data = []  # 定义所有的详情信息列表
# 定义开始抓取的序列号,从2开始9页【这个分析查看网页代码即可发现】假如加上首页共10页
start_num = [i for i in range(1, 10, 1)]
# 1组装要爬取的页面url
for start in start_num:
    if start == 1:
        url = 'https://category.dangdang.com/cp01.54.06.00.00.00.html'
    else:
        url = 'https://category.dangdang.com/pg{}-cp01.54.06.00.00.00.html'.format(start)
    print('正在处理url:', url)
    html = DataFetcher.fetch_data(url,headers)  #获取页面数据
    detail_list=DataParser.Parser_data_urllist(html)#爬取当前页列表详单URL
    print(detail_list)
    urls.extend(detail_list) #添加所有需详情解析的列表中

print('获取urls完毕',urls)


# 2开始解析详情页面,从所有URL中拉取详情信息
for number in range(len(urls)):
    print(f'正在爬取第:{number}页数据,url:{urls[number]}')
    html=DataFetcher.fetch_data(urls[number],headers)  #获取页面数据
    data = DataParser.Parser_data_detail(html, number)
    data.append(urls[number])
    list_all_data.append(data)
    time.sleep(2) #可增加一点延时

print('解析结束')


# 3创建DataFrame并保存
df = DataFrame(list_all_data,
               columns=['序号', '书名', '简介', '作者', '出版社',
                        '出版时间', '评论排名', '评论数','价格', '图书分类','分类','链接'])
DataSaver.save_to_excel(df,r'畅销程序设计类图书.xlsx')
print('数据已存储')

最终爬取存储效果如下图所示:
在这里插入图片描述

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值