作者:Josiah
来源:http://www.cnblogs.com/Josiah-Lin/p/7241678.html
1.目标
排行榜的地址: http://www.qu.la/paihangbang/
找到各类排行旁的的每一部小说的名字,和在该网站的链接。
2.观察页的结构
很容易就能发现,每一个分类都是包裹在:
之中,
这种条理清晰的网站,大大方便了爬虫的编写。
在当前页面找到所有小说的连接,并保存在列表即可。
3.列表去重的小技巧
就算是不同类别的小说,也是会重复出现在排行榜的。
这样无形之间就会浪费很多资源,尤其是在面对爬大量网页的时候。
这里只要一行代码就能解决:
这里调用了一个list的构造函数set:这样就能保证列表里没有重复的元素了。
4.代码实现
模块化,函数式编程是一个非常好的习惯,坚持把每一个独立的功能都写成函数,这样会使代码简单又可复用。
获取该小说每个章节的url地址,并创建小说文件
本次爬虫写的这么顺利,更多的是因为爬的网站是没有反爬虫技术,以及文章分类清晰,结构优美。
但是,按照这篇文的思路去爬取小说,大概计算了一下:一篇文章需要:0.5s,一本小说(1000张左右):8.5分钟,全部排行榜(60本): 8.5小时!
那么,这种单线程的爬虫,速度如何能提高呢?
自己写个多线程模块?
其实还有更好的方式: Scrapy框架
后面可将这里的代码重构一边遍,速度会几十倍甚至几百倍的提高了!这其实也是多线程的威力!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有