用java从网上爬取大部头小说

来源:互联网 发布:数据录入公司 编辑:程序博客网 时间:2024/06/04 18:13


用java从网上爬取大部头小说

   

        最近,我从网上看到零点看书(www.00ksw.com)网站分章连载了网络作家写的《大主宰》这部玄幻小说。截至目前,这部小说的最新章节已写到第一千三百三十三章 太灵通天光。访问http://www.00ksw.com/html/1/1343/597361.html,首页就能看到“零点看书 > 玄幻小说 >大主宰 > 正文 第一章 北灵院”的内容。想继续看下一章,可以在“章节列表”里点“下一章”。
        但在网上看书,总不如离网来得方便。有没有办法把这部小说的内容下载到电脑呢?答案是肯定的,有。
        今天,我从百度里搜索到一篇名为《java爬虫之下载小说》的网文。这篇网文的作者是:qq_25237663,链接地是:http://www.th7.cn/Program/java/201607/890479.shtml。这篇网文提供了用java从网上爬取这篇小说的源代码。感谢作者,通过访问http://lixiaolin.me/2016/06/30/java-getnovel/,我成功下载了这个源代码。
        这个源代码有以下几个特点。
        一是这个源代码编写得很简单,主要在于分析网页结构、正则匹配以及文件保存。
        二是爬取小说主要需要爬取章节、正文,以及能保证爬取到所有的章节。作者以《大主宰》为例,通过分析其网页结构,可以看到小说正文包含在一个id为content的div里,这极大的帮助了我们的爬取.章节名称保存在一个名为readtitle的js变量中.下一页的url位于a标签的href属性中。
        三是通过分析网页结构,提供了如下正则表达式:
        * 章节名: readtitle = "(.+?)"
        * 正文: <div id="content">(.+?)</div>
        * 下一章:&rarr; <a href="(.+?)">
        如果当前章节是最新章节,那么其下一章的url是以 / 开头的,我们可以根据这个判断章节是否是最新章节。
        根据这个源代码,通过java,我将源代码制作成java格式的文件。
        首先,要做好制作前的准备。

        一是要在F盘新建一个文件夹,并将文件夹命名为pachong。

        二是要将源代码第一行的package com.lxl.txt;删除,或变为注释//。

        三是要在mypachong文件夹里新建一个文本文档,将源代码复制粘贴到新建文本文档里,并将其另存为java格式的文件,将其命名为NovelGet.java。

        四是要在D盘里另建一个文本文档,将其命名为test.txt,用来存放下载的小说各章节内容。
        在此基础上,通过输入cmd命令,我成功地将java格式的文件制作成jar格式的软件。
        打开“开始”/“运行”,输入cmd,点“确定”,弹出cmd界面。
        在cmd界面里显示:
        Microsoft Windows [版本 6.1.7601]
        版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
        输入:
        C:\Users\Administrator>f:
        F:\>cd pachong
        F:\pachong>javac NovelGet.java
        F:\pachong>jar -cvf NovelGet.jar NovelGet.class
        已添加清单
        正在添加: NovelGet.class(输入 = 2881) (输出 = 1637)(压缩了 43%)
        F:\pachong>
        这时,在f:\pachong文件夹里右键点击NovelGet.jar,在弹出的右键菜单里点用WinRAR打开,点击,在弹出的输入MAIN-CLASS: NovelGet 敲两次空格键, 敲两次回车。然后点保存,点是,再点文件,点副本。
        至此,NovelGet.jar的制作完成,下一步就可以检测到NovelGet.jar的运行结果了。
        返回cmd,在f:\pachong>的后面输入jara NovelGet,回车后,cmd界面弹出“开始爬取数据”的提示:经过一段时间的爬取,程序运行结束。
        F:\mypachong>java NovelGet
        开始爬取数据...
        用时 489秒...
        经过一段时间的爬取(爬取时间的长短与网速的快慢有关),程序运行结束。
        F:\mypachong>pause
        请按任意键继续. . .
        此时打开f:\test.txt,发现文本的大小已由0变为7.71BM。截至2016年10月14号,《大主宰》这篇玄幻小说的最新章节为第一千三百三十三章 太灵通天光,小说从第1章到第1333章的内容已全部爬取出来,并集中保存在f:\test.txt文件里。

0 0