本文用Python爬虫框架Scrapy解决两个问题:
- 一键生成连载目录,问题来源见:@一鸣 《怎样为连载作品加目录和章节链接》
- 简书连载作品排行统计,问题来源见:@唐妈 《简书连载作品龙虎榜》
一开始是想解决唐妈手工统计这些数据的问题,后来又看到一鸣君写的这篇文章,爬虫在抓取了这些数据后也可以一次生成连载目录。
一、先来看一下成果
我试着跑了一下3位连载作者唐妈、巫其格、碧海明月的作品,分别生成了连载目录,对的,就是mardown格式的,我在文尾放一个生成的连载目录。
3位作者连载作品的每一个章节发表时间、阅读数、评论数、收到的喜欢数、打赏数都抓取放在Excel表格中。
二、实现要点
所有的技术要点,在我前面的文章基本都涉及到了,可以查看Python学习系列文章。
需要说明的是:简书上的连载文章目前作者是用了两种编录方式,一种是文集方式,url地址栏中有notebooks, 另一种是专题方式,不接收投稿的专题,url地址栏中有collection。页面的数据、数据的内容也有一些不同。
def parse(self, response):
url = response.url
if url.find('notebooks') > 0:
yield Request(url,callback=self.parse_notebooks)
elif url.find('collection') >0:
yield Request(url,callback=self.parse_collection)
如果是专题方式,比较麻烦一点,这个页面上只有阅读数和评论数,没有用户喜欢数和打赏的数据。就需要到用户最新文章页面(latest_articles)去取数据,但是有的连载作者不光写连载文章,还写其他文章,或者几个连载同时写,这时就需要参数传递,再加判断进行过滤筛选即可。实现起来难度不大,需要多调试。
希望Python爬虫能简化大家的工作,专注写作,提供更多更好的作品。
(以下链接就是爬虫生的markdown格式内容粘贴过来的)
嘿,我想和你谈个恋爱 第43天(大结局)
嘿,我想和你谈个恋爱 第42天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第41天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第40天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第39天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第38天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第37天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第36天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第35天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第34天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第33天
嘿,我想和你谈个恋爱 第32天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第31天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第30天(原名《失恋33天》)
嘿,我想和你谈个恋爱 第29天
嘿,我想和你谈个恋爱 第28天
嘿,我想和你谈个恋爱 第27天
嘿,我想和你谈个恋爱 第26天
嘿,我想和你谈个恋爱 第25天
嘿,我想和你谈个恋爱 第24天
嘿,我想和你谈个恋爱 第23天
嘿,我想和你谈个恋爱 第22天
嘿,我想和你谈个恋爱 第21天
嘿,我想和你谈个恋爱 第20天
嘿,我想和你谈个恋爱 第16天
嘿,我想和你谈个恋爱 第15天
嘿,我想和你谈个恋爱 第14天
嘿,我想和你谈个恋爱 第13天
嘿,我想和你谈个恋爱 第12天
嘿,我想和你谈个恋爱 第11天
嘿,我想和你谈个恋爱 第19天
嘿,我想和你谈个恋爱 第18天
嘿,我想和你谈个恋爱 第17天
嘿,我想和你谈个恋爱 第10天
嘿,我想和你谈个恋爱 第9天
嘿,我想和你谈个恋爱 第8天
嘿,我想和你谈个恋爱 第7天
嘿,我想和你谈个恋爱 第6天
嘿,我想和你谈个恋爱 第5天
嘿,我想和你谈个恋爱 第4天
嘿,我想和你谈个恋爱 第3天
嘿,我想和你谈个恋爱 第2天
嘿,我想和你谈个恋爱 第1天