爬取起点小说网(一)设计思想

摘要:
Scrapy框架爬取起点小说网:(1)开始设计:运用的工具:redis,mongodb,pychorm,python3.6环境逻辑:分析:先爬取起点小说网站的分类,和子分类;eg:玄幻是个大分类,下面还分有东方玄幻,异世大陆,王朝争霸,高武世界4个子分类《1》第一步:我们先爬取起点小说网的全部作品,男生,下的所分类包括子分类;《2》把大分类和子分类的名称放入mongodb中的novel库中的nov

Scrapy框架爬取起点小说网:
(1)开始设计:
运用的工具:redis,mongodb,pychorm,python3.6环境
逻辑:
分析:先爬取起点小说网站的分类,和子分类;eg:玄幻是个大分类,下面还分有东方玄幻,异世大陆,王朝争霸,高武世界4个子分类
《1》第一步:我们先爬取起点小说网的全部作品,男生,下的所分类包括子分类;
《2》把大分类和子分类的名称放入mongodb中的novel库中的novelclass表中:
形式如下:
{ "_id" : ObjectId("5a1fda1b1b13cd3fec9b07ad"), "classname" : "玄幻", "pid" : null }
{ "_id" : ObjectId("5a1fda1b1b13cd3fec9b07ae"), "classname" : "奇幻", "pid" : null }
{ "_id" : ObjectId("5a1fda1b1b13cd3fec9b07af"), "classname" : "武侠", "pid" : null }
{ "_id" : ObjectId("5a1fda1b1b13cd3fec9b07b0"), "classname" : "仙侠", "pid" : null }
{ "_id" : ObjectId("5a1fda1b1b13cd3fec9b07b1"), "classname" : "都市", "pid" : null }
{ "_id" : ObjectId("5a1fda1d1b13cd3fec9b07bb"), "classname" : "东方玄幻", "pid" : "5a1fda1b1b13cd3fec9b07ad" }
{ "_id" : ObjectId("5a1fda1d1b13cd3fec9b07bc"), "classname" : "异世大陆", "pid" : "5a1fda1b1b13cd3fec9b07ad" }
{ "_id" : ObjectId("5a1fda1d1b13cd3fec9b07bd"), "classname" : "王朝争霸", "pid" : "5a1fda1b1b13cd3fec9b07ad" }
{ "_id" : ObjectId("5a1fda1d1b13cd3fec9b07be"), "classname" : "高武世界", "pid" : "5a1fda1b1b13cd3fec9b07ad" }
{ "_id" : ObjectId("5a1fda1d1b13cd3fec9b07bf"), "classname" : "修真文明", "pid" : "5a1fda1b1b13cd3fec9b07b0" }
{ "_id" : ObjectId("5a1fda1d1b13cd3fec9b07c0"), "classname" : "幻想修仙", "pid" : "5a1fda1b1b13cd3fec9b07b0" }
注意:
"_id"是mongdb库系统自动生成的流水id(classid); "classname" 是自己给分类所起的属性名;"pid"这里要说明一下大分类的"pid"我自动设为空,(我们只取大分类的名称,链接我们并不爬取,我们用子分类的链接去爬下面的小说)
子分类的"pid"(eg:东方玄幻)的"pid"的是来自于大分类的(玄幻)"_id",也就是我所说的classid

《3》第二步:把爬取到的子分类链接,存入redis库中:
"5a1fda221b13cd3fec9b080c,5a1fda1b1b13cd3fec9b07ba,https://www.qidian.com/all?chanId=20076&subCateId=20096&orderId=&page=1&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=0"
"5a1fda221b13cd3fec9b080b,5a1fda1b1b13cd3fec9b07ba,https://www.qidian.com/all?chanId=20076&subCateId=20081&orderId=&page=1&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=0"
分析:
取第一行解析:这里的链接是子分类链接(玄幻下的东方玄幻)
5a1fda221b13cd3fec9b080c 是redis数据库自动成的流水id(classid),5a1fda1b1b13cd3fec9b07ba 是存入Mongodb中大分类的,classid也就是大分类的流水id("_id"也称为(classid))
https://www.qidian.com/all?chanId=20076&subCateId=20096&orderId=&page=1&style=1&pageSize=20&siteid=1&pubflag=0&hiddenField=0" 这个当然是子分类链接(后面我们需要进入此链接爬取该分类下的小说名,和链接)
(2)开始设计:
上面我们已经获取到了,子分类链接,我们开始从redis库中的novelurl分别取出子分类链接,我们开始爬取子分类链接下的小说名,和小说的链接
《1》第一步:
我们把爬取到的小说名,存入mongdb中novel库中的novelname表中:
存入格式如下
"_id" : ObjectId("5a225cb91b13cd00bca29f78"), "classname" : "想起西藏", "pid" : "5a1fda221b13cd3fec9b080a",
这里的"pid"属于字分类名称的流水id("_id"(classid))
《2》第二步:
我们把爬取到的小说链接,存入redis中的novelnameurl表中
1) "5a225cbf1b13cd00bca2a0b7,5a1fda221b13cd3fec9b080b,https://book.qidian.com/info/1009238856,"
2) "5a225cbf1b13cd00bca2a0b6,5a1fda221b13cd3fec9b080b,https://book.qidian.com/info/1009276234,"
3) "5a225cbf1b13cd00bca2a0b5,5a1fda221b13cd3fec9b080b,https://book.qidian.com/info/1007074952,"
4) "5a225cbf1b13cd00bca2a0b4,5a1fda221b13cd3fec9b080b,https://book.qidian.com/info/1009270003,"
5) "5a225cbf1b13cd00bca2a0b3,5a1fda221b13cd3fec9b080b,https://book.qidian.com/info/1009390865,"
6) "5a225cbf1b13cd00bca2a0b2,5a1fda221b13cd3fec9b080b,https://book.qidian.com/info/1009288996,"
7) "5a225cbf1b13cd00bca2a0b1,5a1fda221b13cd3fec9b080b,https://book.qidian.com/info/1008984031,"
8) "5a225cbf1b13cd00bca2a0b0,5a1fda221b13cd3fec9b080b,https://book.qidian.com/info/1007097298,"
第一个为例: 5a225cbf1b13cd00bca2a0b0 流水id,5a1fda221b13cd3fec9b080b,这里的"pid"属于子分类名称的流水id("_id"(classid))
(3)开始设计:
上面我们以经爬取到了小说名,和小说链接,我们开始从redis库中的novelnameurl分别取出小说名链接,我们开始爬取小说信息(书名,作者,类别(玄幻,东方玄幻),状态(连载,完结))
把取到的信息更新到mongdb库中的novelname表中,
形式如下:
{ "_id" : ObjectId("5a225cb91b13cd00bca29f78"), "classname" : "想起西藏", "pid" : "5a1fda221b13cd3fec9b080a", "workName" : [ "老琚啊老琚" ], "novelName" : [ "想起西藏" ], "novelState" : [ "连载", "免费" ], "objClass" : "短篇", "sonClass" : "美文游记" }
{ "_id" : ObjectId("5a225cb91b13cd00bca29f79"), "classname" : "旖旎在时光一角", "pid" : "5a1fda221b13cd3fec9b080a", "workName" : [ "汐海梅" ], "novelName" : [ "旖旎在时光一角" ], "novelState" : [ "连载", "免费" ], "objClass" : "短篇", "sonClass" : "美文游记" }

(4)开始设计:
我们开始从redis库中的novelnameurl分别取出小说名链接,我们开始爬取小说的章节,和章节链接
《1》第一步:
我们把爬取到的小说章节名,存入mongdb中novel库中的novelChapterInfo表中:
存入格式如下
{ "_id" : ObjectId("5a221a611b13cd29004b5806"), "novelChapter" : "第一章八星融合", "pid" : "5a214d541b13cd1a104376cd",
这里的"pid"对应小说名的"_id",
《2》第二步:
我们把爬取到的小说章节链接,存入redis中的novelChapterUrl表中
存入格式如下
64) "5a221a621b13cd29004b5829,5a214d541b13cd1a104376cd,https://read.qidian.com/chapter/KKV0W9RivgVgi2M3GqM4mg2/2PWpLNV-6O7gn4SMoDUcDQ2"
65) "5a221a621b13cd29004b5828,5a214d541b13cd1a104376cd,https://read.qidian.com/chapter/KKV0W9RivgVgi2M3GqM4mg2/w99g-oUhP834p8iEw--PPw2"
第一个为例: 5a221a621b13cd29004b5829 流水id,5a214d541b13cd1a104376cd,这里的"pid"属于小说名的流水id("_id"(classid))
(5)开始设计:
我们开始从redis库中的novelChapterUrl分别取出小说章节链接,我们开始爬取小说的章节内容
把取到的章节内容更新到mongdb库中novel库中的novelChapterInfo表中,
形式如下:这里的"pid"对应小说名的"_id",
{ "_id" : ObjectId("5a221a611b13cd29004b5806"), "novelChapter" : "第一章八星融合", "pid" : "5a214d541b13cd1a104376cd", "novelChaptersContent" : "  感受着自己身体在变 化,帝子圭更加卖力,完全沉浸在其中。   
一旁的人,目光看向帝子圭,有不解,有惊讶,有不屑……帝子圭全部无视了,脑袋不停地移动,努力接着落下的雨珠。  帝子圭不再犹豫,他知道这是天赐机遇,必须抓住。在旁人惊讶的目光中,他迅速地脱去身上的衣服,只留一条裤衩。使身体平躺,使之最大面积接受雨珠,还张大自己的嘴巴,接住掉落的雨珠。  当雨珠落在身上时,人们顿时体会到它的奇妙。原本身体有疾的人,纷纷康复,身心健康的人,更加强壮有力…… 
 顿时,彩虹横空,霞光万丈,仙音阵阵,太空开始下起雨来。雨珠如珍珠般大小,仔细看时,却是晶莹剔透,由内散发着七彩之光。  “赐!”威严的声音再次响起,惊醒了帝子圭,他知道天道开始赐福了。  帝子圭也是激动万分,把脑海中的信息仔细地读取着,生怕有丝毫的遗漏。从信息中,他知道这是个危机,更是机遇!  …………  “我的钱啊!我在银行还存有黄金啊!”  “这是集体穿越了吗?,我怎么不太明白啊!” 
 “哈哈!以后 我们是不是可以修炼了,可以像神仙一样长生不死了!”  “哇!这不是小说里的东西吗?原来是真的啊!”  读取完信息后,知道自己不用死了,所有人悬着的心终于可以放下了,开始议 论。  天道系统将暂时统管众生,只起辅助作用,一些不懂的信息和规则在允许的范围内,天道系统会及时提示,也可向系统询问。  为了补偿现如今的所有生命,天道将赐福众生。  天道将集齐所有的天地碎片,重组新大陆,
众多的天地碎片将融合在一起,届时百族林立,争霸天地,强者生,弱者死! 
 天道无情,无私,乃鸿蒙宇宙至高无上的秩序。洪荒大劫,天地破碎,天道也随之崩坏,经过漫长岁月的演变,不断地完善,逐渐形成了新的天道,新的秩序!  洪荒大劫,天地破碎,圣人陨落,众生浩劫。破碎的天地散落宇宙四面八方,八大行星原属于洪荒很小的一部分(相对来说),太阳和月球也是太阳星和阴星的一小块,像这样的天地碎片不计其数,大小不一。  不等人们反应过来,脑海之中突然多出了许多信息。 
 “天道回归, 众星融合,万族争霸,洪荒再现”突然,人们的脑海之中响起了一道威严的声音,不带丝毫感情地说道。 
 不知道过了多久,巨响声终于停了下来,原本惊慌、绝望的人群也随之安静了下来 ,静静地看着早已烟尘弥漫的地球,等待着自己的命运。  无数的人看见这一幕,原本心存一丝侥幸的心,再次充满了绝望!  “苍天啊!难道你抛弃了我们吗?”……  “那以后我们怎 么办?怎么办……”  “完了!一定是外星人入侵了,是他们毁灭了地球!”  “天啊!地球毁灭了!”  “轰隆隆……”碰撞的巨响声不断地传来,惊得无数人寻声望去,
七大行星不断地与 地球碰撞在一起,仿佛要同归于尽一般。  人们开始议论纷纷,一来是迷惑不解,二来是以此来缓解心中的紧张和害怕。
  ……  “你傻啊!世界末日有这样的吗?一定是外星人入侵地 球了”  “难道是世界末日!”  “这是怎么回事?”  不过看到这么多人和自己一样的遭遇,顿时心中安定了不少。  惊恐过后的人们,开始冷静下来,不再做无劳的举动。脑海中充满 了迷惑和害怕,不停地看着周边人儿,又往远处看去,到处都是密密麻麻的人!  但是这些不可能的事,却真实地发生在了他们身上!  人类完全不敢想象,有一天,自己不需要乘坐宇宙飞船
,穿着航空服,就能游于太空之中!  无数人惊恐地大叫着,手脚慌乱地舞动,但是身体完全不能控制。这突如其来的变故,无数人眼神充满了疑惑,绝望……
  人们的身体开始不受控制地漂浮起来,慢慢升高,越来越快,开始远离地面。  而此时,地球上的人们,更是肝胆俱裂,大地传来阵阵轰隆隆的巨响,造成无数房屋倒塌,山脉断裂,无数的动物暴动起来……  反应过来的宇航员要给地面汇报情况时,却诡异地发现自己的身体已漂浮在太空之中,无论他们如何地挣扎,身体都不受控制地远离地球……  空间站的宇航员观察到了不断靠近的七大行星,被这一幕吓得目瞪口呆。  
如果此时有人能俯瞰整个太阳系,就会发现,原本绕着太阳运行的八大行星,开始挣脱引力的束缚,偏离了预定的运行轨道,快速地移动着,形成以地球为核心,其他七大行星围绕着地球,并不断地朝着地球靠近……
  ……  “哦买嘎!亲爱的,这是世界末日了吗?”  “是啊!都快看不见了,这可是大白天啊!”  “这天黑得也太奇怪了!”  “天气预报没有说啊!怎么可能突然就来了台风?”  “这是怎么回事!大晴天的,怎么就突然暗了下来,是刮台风了?”  天气越来越糟糕,人们开始议论纷纷。  胆小的人纷纷回家躲避,也有好奇的人驻足观望,有的人被惊醒,从房子里跑出来……甚至有人开始囤积生活用品! 
 地球2017年7月22日,原本晴朗的天空,突然阴云密布,电闪雷鸣,狂风大作,仿佛末日 将至。突如其来的变化,令地球上的人惊慌失措。" }

免责声明:文章转载自《爬取起点小说网(一)设计思想》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇32位程序调用64位函数————开源代码rewolf-wow64ext学习笔记RabbitMQ安装与配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用腾讯语音合成技术生成有声书

  背景:不知是否在博客园看到的腾讯云平台广告,被AI接口几个项目吸引住了,其中有个   语音合成  接口在这里安利一下,还挺好玩。这个接口提供将一段文字转换成语音的功能,支持中文、英文,遗憾的是暂时无法通过自己的声音进行训练,推出自己独有声音的音频文件:) 不过总体来说,还是相当不错啦,附件中是我用这个接口转换的样例音频文件。 DEMO实测,代码案例简单...

Python实战---制作专属有声小说(调用百度语音合成接口)

这一次的目标是使用百度云的人工智能接口,实现文字转语音的实时转换,将小说文字转换成语音朗读出来。 百度云接口调用 百度的这个接口对于我们普通用户非常友好,他的很多功能都是免费的,而且我们每天可以免费调用这个接口五千次,非常适合我们玩转这些功能。 注册百度云账号 首先打开百度云语音合成模块接口地址 打开网址后点击《立即使用》选项,然后会出现登录的选项界面。如...

读书心得3:去功利化&推荐两本书 转时寒冰

读书心得3:去功利化&推荐两本书时寒冰 常有朋友写信,让推荐书籍。这是一件很为难的事情,因为,每个人的知识结构不一样,所处行业不一样,需求差异也很大。读书最忌太功利化——需要什么就去读什么书,唯恐读了与自己的利益或追求关系不大的书而耽误了时间、浪费了金钱。很多人吃顿饭大方到一掷千金,买本书却再三掂量。时间的因素、金钱的因素,导致现在的国人读书越来越...

经典有声小说 100部 MP3版本(收藏)

经典有声小说 100部 MP3版本(收藏)   内容介绍: 《不一样的天堂》全20回有声小说MP3版播音:刘星云 《不要让任何人偷走你的梦想》管理励志有声读物(26集全) 《不负如来不负卿》全117回有声小说MP3版 《世界没有我们看见的那么简单》佟森 管理励志有声读物 《东盗版者》全6回mp3(演播:张盾) 《东风破》全14回mp3(演播:牟云) 《...

python 中文字数统计/分词

因为想把一段文字分词,所以,需要明确一定的词语关系。 在网上随便下载了一篇中文小说。随便的txt小说,就1mb多。要数数这1mb多的中文到底有多少字,多少分词,这些分词的词性是什么样的。 这里是思路 1)先把小说读到内存里面去。 2)再把小说根据正则表达法开始分词,获得小说中汉字总数 3)将内存中的小说每段POST到提供分词服务的API里面去,获取分词结果...

自媒体新人常见问题汇总-千氪

    上周四,千氪通过微信群直播方式举办了第一期“千氪专栏公开课”,并邀请到了千氪专栏入驻作者麦大人进行自媒体写作经验分享,进两百位听众一起收听了这堂公开课。课后,一些自媒体新人就自己写作过程中常见的一些问题对话了麦大人,麦大人对之进行了一一回复。本文整理了几个比较有代表意义的问答,与大家分享。 Q:怎么才能在短时间内在一个平台上获取更多的粉丝呢?  ...