项目背景

好朋友说要换平台去晋江写书,想了解晋江现在什么类型比较火,这些受欢迎的书都是些什么题材元素,数据怎么样。

她说都是自己看着榜单然后手动去复制粘贴到Excel里对比,手都累死了,于是我自告奋勇说帮她写爬虫脚本去抓数据(主要是网页端,

跟她琢磨了一下需要哪些榜单哪些数据,发现还挺杂。

因为我只看言情小说,所以只关注过言情频道,现在才发现原来晋江还分四个站点(言情,纯爱,衍生,原创),每个站点各自排榜单。

我们主要关注言情和纯爱两个大类,然后主要看这几个榜单

——收入金榜:vip文章近7天的销量排行,不分新老书,只要有读者买v章就算数据,有14个分类各24本书上榜。

——新手金榜:也是v文近7天销量排行,但是作者是新人,计算的是作者第一篇V文最近七天的收益,14*20本书上榜

  分析这个两个榜单可以看出目前市场销量最好的文是哪些元素,哪一类的数据最好,竞争比较激烈,冷门类别比较好上榜但上榜了也许收益也没多少

——千字金榜:文章开始收费章节后30天内的收益排行,主要关注言情站和纯爱站,上榜200本,不分新老书,竹已的偷偷藏不住已经上榜好几年了

——新晋作者榜:只要注册成为作者发文(30天内,31天就下榜)就有积分,按积分上榜200名。

  分析新晋榜的文章标签可以看出新人作者喜欢写哪些元素,而且也不是每本新书都可以签约的,可以从中看出签约率

——手机端的新书千字榜,签约的文成功到达可以收费的条件后就可以上这个榜,按收益排名,不分站点和类别,混战,但是我不会抓手机端的数据……所以这个略了

整理最终想要的数据如下

Python晋江筛选 python爬取晋江小说排行榜_php

后来发现这个文案老长,有时候作者还会把其他作品的预收文案或者给好基友推荐的文案也写上,会导致最后文件非常大,所以实操的时候去掉了

 

代码实现 

其实就是在榜单页面获取到排名和作品名以及作品链接,然后点链接到详情页,把详情页的数据给挑出来

这里以新手金榜,和某本书的详情页为例

——金榜链接(https://www.jjwxc.net/topten.php?orderstr=17&t=0)

1)用requests库获取整个页面的响应,存在jb_text里

Python晋江筛选 python爬取晋江小说排行榜_php_02

2)使用beautifulsoup对页面进行解析,提取想要的东西 

Python晋江筛选 python爬取晋江小说排行榜_php_03

 

Python晋江筛选 python爬取晋江小说排行榜_.net_04

 

Python晋江筛选 python爬取晋江小说排行榜_Python晋江筛选_05

 至此以上已经提取到榜单的书本信息以及作品链接,下面对作品详情页的内容进行解析提取。最后组合一下把详情页数据添加在book_info这个列表里再写入到文件里

——单本解析,链接:https://www.jjwxc.net/onebook.php?novelid=6135887

 需要的字段:文章类型,文章进度,签约状态,内容标签,总书评,被收藏数,文章积分,非V章均点击,前3章点击

除了点击其他字段都有比较明确的属性可以提取,而点击数比较奇怪,虽然页面上有展示但是响应里并没有,后来辗转找到一位网友帮忙解惑,

才知道点击数并不是在这个网页里,在network下点放大镜搜索第一章的点击数,

可以看到非V章节的点击数存在https://s8-static.jjwxc.net/getnovelclick.php?novelid=6135887&jsonpcallback=novelclick这个页面里

Python晋江筛选 python爬取晋江小说排行榜_.net_06

Python晋江筛选 python爬取晋江小说排行榜_.net_07

Python晋江筛选 python爬取晋江小说排行榜_.net_08

Python晋江筛选 python爬取晋江小说排行榜_php_09

Python晋江筛选 python爬取晋江小说排行榜_数据_10

Python晋江筛选 python爬取晋江小说排行榜_php_11

 写入文件

Python晋江筛选 python爬取晋江小说排行榜_php_12

 

 最终得到的数据

Python晋江筛选 python爬取晋江小说排行榜_数据_13