0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

爬虫实践:批量下载所有排行榜小说

马哥Linux运维 来源:未知 作者:李倩 2018-10-31 16:54 次阅读

一、目标

排行榜的地址:http://www.qu.la/paihangbang/

找到各类排行旁的的每一部小说的名字,和在该网站的链接。

二、观察网页的结构

很容易就能发现,每一个分类都是包裹在:

之中,

这种条理清晰的网站,大大方便了爬虫的编写。

在当前页面找到所有小说的连接,并保存在列表即可。

三、列表去重的小技巧:

就算是不同类别的小说,也是会重复出现在排行榜的。

这样无形之间就会浪费很多资源,尤其是在面对爬大量网页的时候。

这里只要一行代码就能解决:

这里调用了一个list的构造函数set:这样就能保证列表里没有重复的元素了。

四、代码实现

模块化,函数式编程是一个非常好的习惯,坚持把每一个独立的功能都写成函数,这样会使代码简单又可复用。

1.网页抓取头:

2.获取排行榜小说及其链接:

爬取每一类型小说排行榜,

按顺序写入文件,

文件内容为 小说名字+小说链接

将内容保存到列表

并且返回一个装满url链接的列表

3.获取单本小说的所有章节链接:

获取该小说每个章节的url地址,并创建小说文件

4.获取单页文章的内容并保存到本地

这里有个小技巧:

从网上爬下来的文件很多时候都是带着
之类的格式化标签

可以通过一个简单的方法把它过滤掉:

html = get_html(url).replace('
', '\n')

这里单单过滤了一种标签,并将其替换成‘\n’用于文章的换行,

6.主函数

7.输出结果

5.缺点:

本次爬虫写的这么顺利,更多的是因为爬的网站是没有反爬虫技术,以及文章分类清晰,结构优美。

但是,按照这篇文的思路去爬取小说,

大概计算了一下:

一篇文章需要:0.5s

一本小说(1000张左右):8.5分钟

全部排行榜(60本):8.5小时!

那么,这种单线程的爬虫,速度如何能提高呢?

自己写个多线程模块?

其实还有更好的方式:Scrapy框架

后面可将这里的代码重构一边遍,

速度会几十倍甚至几百倍的提高了!

这其实也是多线程的威力!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4276

    浏览量

    62314
  • 爬虫
    +关注

    关注

    0

    文章

    82

    浏览量

    6810

原文标题:爬虫实践---一次下完所有小说:排行榜小说批量下载

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    HarmonyOS开发案例:【排行榜页面】

    本课程使用声明式语法和组件化基础知识,搭建一个可刷新的排行榜页面。在排行榜页面中,使用循环渲染控制语法来实现列表数据渲染,使用@Builder创建排行列表布局内容,使用装饰器@State、@Prop、@Link来管理组件状态。
    的头像 发表于 04-30 16:16 1857次阅读
    HarmonyOS开发案例:【<b class='flag-5'>排行榜</b>页面】

    中国IC设计公司排行榜

    作者:林晓林  中国IC设计公司排行榜:近日,市场调研公司iSuppli出台了2005年度中国IC设计公司排行榜,与中国半导体协会的排名不同,此次名列榜首的是来自香港的晶门
    发表于 05-26 14:29

    2013年2月份编程软件排行榜,LabVIEWTop27,进步很大。

    本帖最后由 sushu 于 2013-2-13 10:58 编辑 刚刚上网发现编程软件排名,关注的LabVIEW现在已经是27位了,小开心一下。TIOBE编程语言社区排行榜是编程语言流行趋势
    发表于 11-06 12:40

    资料下载排行榜

    资料下载排行榜,怎么就那几个啊,怎么下载到人气高的资料?资料茫茫,我相信大家的眼睛雪亮的。求方法收集些好的资料。。。
    发表于 03-05 16:24

    各种排行榜汇总贴!!!!!

    本帖最后由 dongyumin 于 2013-7-31 11:39 编辑 1.2012网上各地年终奖排行榜,科技、电子企业全面领跑!https://bbs.elecfans.com
    发表于 07-30 11:55

    2014年4月方案公司出货量排行榜

    。而其他方案厂商凭借海外市场以及国内中小品牌、中低端市场持续稳扎稳守。2014年4月方案公司出货量排行榜如下:(更多精彩关注公众微信号:ittbank)
    发表于 06-23 11:41

    2014年10月 TIOBE 编程语言排行榜发布

    2014年10月的 TIOBE 编程语言排行榜发布了,该版本最大的两点是 Google 的 Dart 语言首次进入前 20 名。其竞争者包括 CoffeeScript 目前排名 133,TypeScript 排名 122.想知道完整的排名表格请回复
    发表于 12-08 13:46

    小米放出“手机电量排行榜” 为续航神机Max 2造势

    小米手机家族的电量排行榜,并向网友征询:“你觉得小米Max2多大电量够你用? ”从排行榜来看,现款小米Max以4850mAh的容量排名第一,其次是小米MIX(4400mAh)、红米4(4100mAh
    发表于 06-03 14:20

    MapReduce框架音乐排行榜案例

    Hadoop综合实战之MapReduce运算优化——音乐排行榜
    发表于 10-16 12:20

    求职必知独角兽公司排行榜

    世界第 3 的滴滴裁员,求职必知独角兽公司排行榜
    发表于 06-18 07:30

    2019年2月编程语言排行榜分享

    2019年2月编程语言排行榜
    发表于 07-14 10:28

    【年度盘点】全民投票,电源技术论坛贡献排行榜

    此帖将总结盘点2020全年电源技术论坛贡献排行榜所有上榜的用户从资料/问答/经验/讨论TOP5榜单中产生,需要大家在所有候选用户中进行投票,最终投票结果排行TOP3的用户获得相应礼品
    发表于 01-12 15:04

    【年度盘点】全民投票,STM32/STM8技术论坛贡献排行榜

    此帖将总结盘点2020全年STM32/STM8技术论坛贡献排行榜所有上榜的用户从资料/问答/经验/讨论TOP5榜单中产生,需要大家在所有候选用户中进行投票,最终投票结果排行TOP3的
    发表于 01-12 18:37

    【年度盘点】全民投票,labVIEW技术论坛贡献排行榜

    此帖将总结盘点2020全年labVIEW论坛贡献排行榜所有上榜的用户从资料/问答/经验/讨论TOP5榜单中产生,需要大家在所有候选用户中进行投票,最终投票结果排行TOP3的用户获得相
    发表于 01-28 17:50

    2020年最新主板型号排行榜 精选资料推荐

    电脑硬件,那么对于比较重要的部件都要精心挑选,比如主板是承载所有部件的成员,也是很重要的,下面小编就给大家分享一下2020年最新主板型号性能排行榜天梯图吧。2020主板型号天梯图2020主板选购指南一、Intel、AMD电脑主板的辨别1.Intel和AMD处理器所用的主板
    发表于 07-26 06:16