爬虫实例五:爬取小说排行榜并把数据导入excel文件中

December 17, 2023
测试
测试
测试
测试
3 分钟阅读

一、前言

小说这么多,找起来也是一种苦恼呢!根据网站自带的筛选,只能通过一个方面筛选,如类型、更新时间等等。那我想多角度筛选一篇文章怎么办?看了这篇文章,你的苦恼便会烟消云散!

二、网站爬取分析

既然是要爬取排行榜,进行数据筛选,肯定少不了多页爬取。那我们就先来看看,每一页的URL有什么变化,有时候规律可循。

通过比较,我们可以很快发现规律,之后在这个地方使用“1和2所在的位置”循环即可。

    for i in range(1, 5):  # 根据想要爬的页数而改动
        url = 'https://www.52bqg.net/top/allvisit/{}.html'.format(i+1)

然后就是对一个页面进行检查分析啦。

规律也是很明显的,一个li节点对应一篇小说的目录内容,使用bs4,很容易就能对内容进行提取。

提取内容之后,就是对内容的保存,利用xlwt模块,把内容导入到excel中。

三、完整代码

list_all = list()
path = 'D:/笔趣阁目录.xls'
workbook = xlwt.Workbook(encoding='utf-8', style_compression=0)
worksheet = workbook.add_sheet('小说目录', cell_overwrite_ok=True)  # 可覆盖  # 设置工作表名
col = ('小说类型', '小说名', '最新章节', '作者', '最新更新时间')
for i in range(0, 5):
   worksheet.write(0, i, col[i])  # 设置列名
for i in range(1, 5):  # 根据想要爬的页数而改动,这里爬的是第一页到第四页
   url = 'https://www.52bqg.net/top/allvisit/{}.html'.format(i)
   data_list = get_content(url)
   list_all.append([data_list])
for i in range(len(list_all)):  # i=0~1
   sleep(0.5)  # 延迟0.5秒)
   print('正在下载第{}页目录=====>  请稍后'.format(i+1))
   data_s = list_all[i]
   for j in range(len(data_s)):  # j=0
       data = data_s[j]
       for k in range(len(data)):  # k=0~49
           data_simple = data[k]
           for m in range(0, 5):  # m=0~4
               worksheet.write(1 + i * 50 + k, m, data_simple[m])
workbook.save(path)

四、运行结果

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多