文档章节

jsoup 爬小说

少侠-你的剑掉了
 少侠-你的剑掉了
发布于 2016/01/25 17:10
字数 350
阅读 88
收藏 1

无聊的星期一,老姐要我找一本网上的小说,我看没有下载的,写了一个爬虫写入txt 文件,很简单


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Calendar;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;


/**
 * 
 * @author memode
 *
 */
public class Test_1 {
public static void atiricle(){
Document newsdoc;
long t1 = System.currentTimeMillis(); // 排序前取得当前时间  
String link = "http://www.tywx.com/ty109892/";
int num = 5846664; //初始化页码
int chapter = 0;   //章节计数
String tmpLink = "http://www.tywx.com/ty109892/"+num+".html";
File file = new File("c:\\test.txt");  //存入路径  
try {
PrintStream ps = new PrintStream(new FileOutputStream(file));
while (true) {
//设置15s的超时时间
if("404".equals(Jsoup.connect(tmpLink).timeout(15000).execute().statusCode())){
break;
}
newsdoc = Jsoup.connect(tmpLink)
.userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
.timeout(5000).get();  //设置超时时间5s
//判断
if(null==newsdoc.getElementsByAttributeValue("class","kfyd").first()){
break;
}
//标题
String title = newsdoc.getElementsByAttributeValue("class","kfyd").first().select("h1").text();
System.out.println(title);
//获取下一章的链接
tmpLink = link+ newsdoc.getElementsByAttributeValue("id","thumb").first().select("#pager_next").attr("href");
System.out.println(tmpLink);
//解析小说的正文
String news_tmp = newsdoc.getElementsByAttributeValue("id", "content").select("div").remove()
.html()
.replaceAll("<.*?script[^>]*?>[\\s\\S]*?<\\/.*?script.*?>*", " ")     //过滤script脚本
.replaceAll("(?i)<br[^>]*>\n<br>", "\n").replaceAll("&nbsp;", " ");   //过滤换行  和空格
chapter++;
//写入章节和正文
ps.append(title+"\n\n");  
ps.append(news_tmp+"\n");
}
} catch (IOException e) {
System.out.println("网络异常   net error!");
}
System.out.println("已下载"+chapter+"章");
long t2 = System.currentTimeMillis(); // 排序后取得当前时间  
Calendar c = Calendar.getInstance();
c.setTimeInMillis(t2 - t1);  
        System.out.println("耗时: " + c.get(Calendar.MINUTE) + "分 "  
                + c.get(Calendar.SECOND) + "秒 " + c.get(Calendar.MILLISECOND)  
                + " 毫秒");  
}
public static void main(String[] args) {
new Test_1().atiricle();
}
}



© 著作权归作者所有

少侠-你的剑掉了
粉丝 3
博文 10
码字总数 4963
作品 0
深圳
程序员
私信 提问
jsoup可以访问js运行之后的html页面吗?

jsoup可以访问js运行之后的html页面吗?比如有些数据是调用js从后台取得,我现在要得到这些数据,就要爬取js运行之后的页面,可是以我现在对jsoup的研究深度,发现jsoup没有这样的功能,请问...

菠萝啊哈哈
2012/02/15
7.1K
10
【java爬虫】---爬虫+jsoup轻松爬博客

爬虫+jsoup轻松爬博客 最近的开发任务主要是爬虫爬新闻信息,这里主要用到技术就是jsoup,jsoup 是一款 Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API...

雨点的名字
2018/07/19
0
0
Java爬虫实战—利用xpath表达式抓取页面信息

前言 之前有写过如何利用Jsoup去爬取页面信息《Java爬虫实战——利用Jsoup爬取网页资源》,那里主要是借助Jsoup的Selector语法去定位和筛选页面信息,那样使用起来有一定的局限性,并且不太方...

测试开发栈
2017/09/12
0
0
Java 多线程爬虫框架 - AiPa

一款小巧、灵活的Java多线程爬虫框架(AiPa) 1.框架简介 AiPa 是一款小巧,灵活,扩展性高的多线程爬虫框架。 AiPa 依赖当下最简单的HTML解析器Jsoup。 AiPa 只需要使用者提供网址集合,即可...

像风一样i
2018/09/29
4.5K
6
jsoup使用样式class抓取数据时空格的处理

最近在研究用android和jsoup抓取小说数据,jsoup的使用可以参照http://www.open-open.com/jsoup/;在抓纵横中文网永生这本书的目录内容时碰到了问题, 永生的书简介url http://book.zongheng....

Airship
2015/03/07
203
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 不要在领导修风扇的时候打开电扇

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :《Whats Up》 主唱妹子 Lina Perry 的嗓音实在太有力了,收放自如的自信才能唱出这么优秀的歌吧!#今日歌曲推荐# 《Whats Up》-...

小小编辑
今天
11
0
SpringBoot集成Elasticsearch并进行增删改查操作

一、创建工程 使用IntelliJ创建SpringBoot工程 SpringBoot版本为2.0.4 ElasticSearch为5.6.10 删掉蓝框中的文件(如上) 最后我们的目录结构(如下) 下面pom文件主要修改的是把spring boot从Int...

一字见心
今天
5
0
x001-版本介绍

python版本介绍 目前有2 和 3 有很多企业用的代码是2版本,随着技术的发展,以后用3的会成为大趋势 python3的安装 yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-d...

侠客行之石头
今天
5
0
聊聊rocketmq的TransientStorePool

序 本文主要研究一下rocketmq的TransientStorePool TransientStorePool rocketmq-all-4.6.0-source-release/store/src/main/java/org/apache/rocketmq/store/TransientStorePool.java publi......

go4it
昨天
6
0
笔记

场外借贷, 质押 ,托管, 永续合约. 场外借贷,n签合同. 新功能 证券交易组负责中信证券机构及个人投资交易相关系统,服务机构及个人投资客户, 涉及到两融、期权、 期货、做市等境内境外创新业...

MtrS
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部