转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44854719

http://www.llwjy.com/blogdetail/ddcad68eeb91034247ffa331eb461213.html

个人博客站已经上线了,网址 www.llwjy.com ~欢迎各位吐槽~
-------------------------------------------------------------------------------------------------

在上两篇博客中,已经介绍了纵横中文小说的更新列表页和简介页内容的采集,这篇将介绍从简介页采集获得的下一跳章节列表页的信息采集,事例地址:http://book.zongheng.com/showchapter/362857.html

页面分析

通过对页面的分析,我们可以确定下图中的部分就是我们需要采集信息及下一跳的地址。

这里当我们想用鼠标右键--查看网页源代码的时候发现页面已经把鼠标右键这个操作屏蔽了,因此我们只能采用另一种办法来查看源代码,对页面进行分析。在当前页面,按下F12,会出现一个新窗口,也就是之前博客中提到的审查元素出现的窗口,选中Network选项卡,按下 Ctrl + F5,会出现如下画面:

鼠标单机红色选中部分,即可查看网页源代码,效果图如下:

对网页源代码做简单的分析,我们很容易找到章节信息所在的部分,如下图:

每一个章节信息都存储在td标签内,因此对这部分信息我们确定最后的正则表达式为“ <td class="chapterBean" chapterId="\d*" chapterName="(.*?)" chapterLevel="\d*" wordNum="(.*?)" updateTime="(.*?)"><a href="(.*?)" title=".*?"> ”。

代码实现

对于章节列表也信息的采集我们采用和简介页相同的方法,创建一个CrawlBase子类,用它来完成相关信息的采集。对于请求伪装等操作参照更新列表页中的介绍,这里只介绍DoRegex类中的一个方法:

List<String[]> getListArray(String dealStr, String regexStr, int[] array)

第一个参数是需要查询的字符串,第二个参数是正则表达式,第三个是需要提取的信息在正则表达式中的定位,函数的整体功能是返回字符串中所有满足条件的信息。

运行结果

源代码

查看最新源代码请访问:http://www.llwjy.com/source/com.lulei.crawl.novel.zongheng.ChapterPage.html

 /**  *@Description:   章节列表页*/
package com.lulei.crawl.novel.zongheng;  import java.io.IOException;
import java.util.HashMap;
import java.util.List;import com.lulei.crawl.CrawlBase;
import com.lulei.util.DoRegex;public class ChapterPage extends CrawlBase {private static final String CHAPTER = "<td class=\"chapterBean\" chapterId=\"\\d*\" chapterName=\"(.*?)\" chapterLevel=\"\\d*\" wordNum=\"(.*?)\" updateTime=\"(.*?)\"><a href=\"(.*?)\" title=\".*?\">";private static final int []ARRAY = {1, 2, 3, 4};private static HashMap<String, String> params;/*** 添加相关头信息,对请求进行伪装*/static {params = new HashMap<String, String>();params.put("Referer", "http://book.zongheng.com");params.put("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36");}public ChapterPage(String url) throws IOException {readPageByGet(url, "utf-8", params);}public List<String[]> getChaptersInfo() {return DoRegex.getListArray(getPageSourceCode(), CHAPTER, ARRAY);}public static void main(String[] args) throws IOException {ChapterPage chapterPage = new ChapterPage("http://book.zongheng.com/showchapter/362857.html");for (String []ss : chapterPage.getChaptersInfo()) {for (String s : ss) {System.out.println(s);}System.out.println("----------------------------------------------------  ");}}}

----------------------------------------------------------------------------------------------------
ps:最近发现其他网站可能会对博客转载,上面并没有源链接,如想查看更多关于 基于lucene的案例开发 请 点击这里。或访问网址http://blog.csdn.net/xiaojimanman/article/category/2841877 或 http://www.llwjy.com/blogtype/lucene.html

基于lucene的案例开发:纵横小说章节列表采集相关推荐

  1. 基于lucene的案例开发:纵横小说简介页采集

    转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44851419 http://www.llwjy.com/blogdetail/1 ...

  2. 基于lucene的案例开发:纵横小说数据库操作

    转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/46785223 http://www.llwjy.com/blogdetail/e ...

  3. 基于phantomjs二次开发的百度元搜索采集器

    在爬虫.自然语言处理群320349384中的交流中,偶然接触到phantomjs.casper等相对于httpclient较新的框架及采集解决方案,微查之后发现方案可行,故尽清明三日之力,将其二次开发 ...

  4. 基于Lucene垂直搜索引擎的研究与开发实践报告

    目录 一.垂直搜索引擎概述 二.项目概述 三.关键技术 3.1 Lucene 3.2 全文检索 四.系统设计 4.1 实现全文检索 4.1.1.Lucene 实现全文检索的流程 4.2 可视化界面设计 ...

  5. Vue第二天学习总结—— Vue全家桶之组件化开发(组件化开发思想、组件注册、Vue调试工具用法、组件间数据交互传递、组件插槽、基于组件的案例——购物车)

    (一) 组件化开发思想 1. 现实中的组件化思想体现 组件化即是对某些可以进行复用的功能进行封装的标准化工作 标准:要想组件能够成功组合在一起,每个组件必须要有标准 分治:将不同的功能封装到不同的组件 ...

  6. 基于易语言开发的小说下载工具

    基于易语言开发的小说下载工具 这次的编程,是为了交作业,嘻嘻 老规矩,上个图 ***让我女朋友露个脸,哈哈哈哈哈*** 起因:看到论坛里面,没什么用易语言下载小说的软件,是易语言不好用吗?还是Pyth ...

  7. java全文搜索服务器 solr_Apache Solr采用Java开发、基于Lucene的全文搜索服务器

    http://docs.spring.io/spring-data/solr/ 首先介绍一下solr: Apache Solr (读音: SOLer) 是一个开源.高性能.采用Java开发.基于Luc ...

  8. python项目开发实战网盘-《Python项目案例开发从入门到实战》PDF版百度网盘

    「教程分享:Python项目开发从入门到实列」 本书例子具有实用性,20个不同类型的完整列子,600分钟高品质配套教学视频,完整的源码和教学课件,让你对枯燥的Python语言学习充满乐趣. 编辑推荐 ...

  9. python项目开发实例-《Python项目案例开发从入门到实战》PDF版百度网盘

    「教程分享:Python项目开发从入门到实列」 本书例子具有实用性,20个不同类型的完整列子,600分钟高品质配套教学视频,完整的源码和教学课件,让你对枯燥的Python语言学习充满乐趣. 编辑推荐 ...

最新文章

  1. 华中科技大学计算机科学卓越班,2016年华中科技大学光电信息科学与工程(卓越计划实验班)专业在江苏录取分数线...
  2. 聊聊并发(七)——Java中的阻塞队列
  3. iphone照片删掉又出现_iPhone 内存不够用,原因在这儿!
  4. Linux基础—2.Linux中的文件基本命令以及四大远程连接工具XShell、FileZilla、Notepad++、Xmanager4的使用
  5. isdigit( )函数调用——python小练
  6. CREO:CREO软件之零件【模型】扫描之扫描、螺旋扫描、可变剖面扫描、扫描混合、混合、边界混合、可变剖面扫描的简介及其使用方法(图文教程)之详细攻略
  7. Java多线程导出Excel表格, 100w数据量
  8. 局域网考勤python_Python pyftpdlib 实现局域网文件互传
  9. Windows上安装ubantu
  10. 安装Windows10后,必做的6项优化,让你的电脑运行更快
  11. 微信小程序语音搜索功能
  12. 解决图像目标检测两框重叠问题
  13. 魔兽世界各服务器显示版本,魔兽世界版本时间表等级(魔兽世界国服版本时间表)...
  14. 4阶显式Runge-Kutta法解常微分方程的通用程序--python实现
  15. hadoop操作出现:9000 failed on connection exception: java.net.ConnectException:拒绝访问(已解决)
  16. 商品规格属性(SKU)组合算法
  17. 《水经注地图服务》缓存管理说明
  18. 怎么打开苹果Mac电脑科学型计算器
  19. Python实用文档(持更)
  20. python numpy中fromfile函数的使用

热门文章

  1. 摄像头视频推流python_python中用FFmpeg向rtmp服务器推流,实现摄像头直播
  2. itan:request-response简介
  3. 综述阅读:人工智能在肺癌影像基因组学方面的研究与进展
  4. TZT3822EN静态信号测试分析系统
  5. 计算机二级52条基础知识考点
  6. 人工智能数学基础--概率与统计7:学习中一些术语的称呼或表示变化说明以及独立事件的一些补充推论
  7. html 字体图标不显示不出来了,h5页面字体图标显示不正常
  8. asp.net 打开服务器文件,aspnet打开服务器文件夹
  9. 全国计算机考试等级考务管理系统,全国计算机等级考试考务管理系统:https://ncre-bm.neea.edu.cn/...
  10. 【python Turtle源码】教你如何画一只迎福虎将~