在百度上看到别人要下一些小说,就想自己写个下小说的玩玩。

以下为自己玩玩的,不必当真。

package edu.uci.ics.crawler4j.test;import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;/*** * @author andy.wang* @时间 2017年5月27日*/
public class Plzl {public static final int READ_SIZE = 8 * 1024;private static String path="F://three//";private static String domainName="http://www.58xs.com";public static void main(String[] args) throws Exception {String s=domainName+"/html/122/122467/6226722.html";Plzl p = new Plzl();p.requestByGetMethod(s);for (int i = 0; i < 151; i++) {System.out.println("info:"+s);String u=p.requestByGetMethod(s);if ("".equals(u)) {//如果没拿到下一章的就再拿一次u=p.requestByGetMethod(s);if ("".equals(u)) {System.out.println("error:"+s);//如果还是出错就报错出来}}if (!"".equals(u)) {s=u.trim();}Thread.sleep(2000);}}private CloseableHttpClient getHttpClient(){return HttpClients.createDefault();}private void closeHttpClient(CloseableHttpClient client) throws IOException{if (client != null){client.close();}}/*** 通过GET方式发起http请求*/public String requestByGetMethod(String url){String u="";//创建默认的httpClient实例CloseableHttpClient httpClient = getHttpClient();try {//用get方法发送http请求HttpGet get = new HttpGet(url);CloseableHttpResponse httpResponse = null;//发送get请求httpResponse = httpClient.execute(get);try{//response实体HttpEntity entity = httpResponse.getEntity();if (null != entity){String s =EntityUtils.toString(entity,"utf-8");      u= read(s);}}finally{httpResponse.close();}} catch (Exception e) {e.printStackTrace();}finally{try{closeHttpClient(httpClient);} catch (IOException e){e.printStackTrace();}}return u;}private String read(String s) throws IOException{String u="";String txt =path+"//pmzlx.txt";// 创建文件输出流,第二个参数表示为追加的方式输出OutputStream os = new FileOutputStream(txt, true);// 转换为字符输出流,并指定文件编码为utf-8OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");     // 以自定编码的方式读取输入流if (s.lastIndexOf("content")>0) {String tilte = s.substring(s.indexOf("<h1>")+4,s.indexOf("</h1>"));//获取章节名称osw.write(tilte+"\r\n");s =s.substring(s.indexOf("下一章"),s.lastIndexOf("下一章"));//截取内容u = s.substring(s.length()-31, s.length()-2);//获取下一章的urls=s.substring(s.lastIndexOf("content")+9,s.length());//截取正文s=s.substring(0,s.indexOf("上一章"));//截取正文s=delHTMLTag(s);//去除html并且osw.write(s.replaceAll("    ", "\r\n")+"\r\n");//空格替换为换行然后写到txt文本里osw.flush();}osw.close();os.close();if ("".equals(u)) {return u;}return domainName+u;}public String delHTMLTag(String htmlStr){ String regEx_script="<script[^>]*?>[\\s\\S]*?<\\/script>"; //定义script的正则表达式 String regEx_style="<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式 String regEx_html="<[^>]+>"; //定义HTML标签的正则表达式 Pattern p_script=Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE); Matcher m_script=p_script.matcher(htmlStr); htmlStr=m_script.replaceAll(""); //过滤script标签 Pattern p_style=Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE); Matcher m_style=p_style.matcher(htmlStr); htmlStr=m_style.replaceAll(""); //过滤style标签 Pattern p_html=Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE); Matcher m_html=p_html.matcher(htmlStr); htmlStr=m_html.replaceAll(""); //过滤html标签 return htmlStr.trim(); //返回文本字符串 } }

java实现自动下载免费小说相关推荐

  1. java爬虫之下载txt小说

    最近迷上了天蚕土豆写的<大主宰>这本玄幻小说,无奈找不到下载链接.于是就萌生了自己爬取小说章节的想法,代码其实很简单,主要在于分析网页结构.正则匹配以及文件保存. 1. 分析网页结构 爬取 ...

  2. 用Python编写自动下载网络小说的脚本

    很多网站都有长篇连载或是分章节的小说可供在线阅读,但如果想要将所有章节下载下来并整理成一个格式良好的文本文件,则是很费功夫的.幸好可以用Python脚本来自动完成所有的工作.下面的两个脚本,将用来演示 ...

  3. 分享26个关于Java开发视频教程(免费下载)

    分享26个关于Java开发视频教程(免费下载) 1.开发前传_CSS.avi 2.开发前传_HTML基础.avi 3.开发前传_javascript.avi 4.Web开发工具的安装与使用.avi 5 ...

  4. java实现windows壁纸自动下载与切换

    壁纸风波 许多有内涵的朋友都喜欢将自己的电脑桌面壁纸设置为美女图片,并且隔一段时间,自动更换,看起来十分炫酷.的确,用过windows的朋友们都知道,windows的个性化设置里面,可以将壁纸设置幻灯 ...

  5. python爬取有声小说网站实现自动下载实例

    最近想下载一些有声小说,但是苦于没有找到批量下载,每次都是单集单集的下载的,觉得很麻烦,就考虑用python写一个爬虫来实现自动搜集小说,自动下载.下面就是开始展开漫漫的爬虫之路. 基础的就不多说了, ...

  6. idea ctrl + 类点击进入的是 .class 而不是 .java文件 修改idea的配置为自动下载源码

    问题 使用idea ctrl点击方法时进入了.class文件 而不是 .java文件 解决方法 点击进去之后会看到顶端有个蓝条,蓝条上有两个选项:Download Sources 和 Choose S ...

  7. 用Java写一个电影自动下载器

    你好! 下面是一些步骤来帮助你写一个电影自动下载器: 建立一个新的Java项目 选择一个电影下载网站作为数据源, 并使用网络爬虫或API来获取电影的信息(如标题, 时长, 格式, 大小等) 使用Jav ...

  8. i国网app苹果版_话本小说app下载-话本小说苹果版「正版小说免费看」

    话本小说app这款掌上小说阅读软件汇集全网热门小说.话本小说苹果版「正版小说免费看」支持离线阅读,一键缓存,随时随地想看就看.并且全网小说第一时间更新哦!快来邀请你的小伙伴一起来阅读小说吧!感兴趣的快 ...

  9. 2020最新直播源地址下载txt_TXT追书免费小说app安卓版下载-TXT追书免费小说最新版下载v5.0.0...

    TXT追书免费小说是一款让你看小说非常方便的阅读软件,在这款软件中拥有大量的小说资源,大家可以在这里免费的进行阅读,每天都会更新最新的小说资源,让每个用户在这里永不缺书,并且实时更新人气排行榜,收获更 ...

最新文章

  1. FOSCommentBundle功能包:设置Doctrine ODM映射(投票)
  2. 中国移动开发者社区专访:学习Android的两大法宝
  3. JQUERY —— 元素及表单操作
  4. Ubuntu 16.04 桌面菜单栏 任务栏 标题栏消失的解决办法
  5. 前端学习(2749):uniapp项目目录结构介绍
  6. 中小学生Python课应该学什么
  7. 用python制作贺卡_Python:通过邮箱发送贺卡或明信片
  8. python如何提高程序可读性_Python规范:提高可读性
  9. 震惊!Faker.js作者删库,理由竟然是 拒绝被“白嫖”~
  10. Atitit.ide代码块折叠插件 eclipse
  11. android 黑名单中电话拦截
  12. 第二届CCF计算机职业资格认证考试题解(C++)
  13. 面试官:你们的redis主要用来做什么?
  14. ubuntu安装原生迅雷,让下载成为简单
  15. R语言 重命名指定列
  16. Adobe Premiere常用快捷键_艾孜尔江摘录
  17. php使用sendemail,thinkphp如何使用sendcloud发送邮件 | 志博日记
  18. 路由器上DHCP配置 及单臂路由
  19. 再谈10000小时,三板斧破四困境
  20. Unity中镜像图片显示

热门文章

  1. LightGBM 训练及调参
  2. Matlab遗传算法与普通函数优化问题的结合
  3. Android SDK Manager和AVD Manager使用
  4. TARS-PHP:PHP构建高性能RPC框架
  5. 如何做好app的测试工作?
  6. 科研回归-只有博士学位还不够
  7. 一个C语言的基本教程—指针篇
  8. 前端精美小Demo之---进制转换器实现
  9. linux查看虚拟内存占用高,linux查看虚拟内存和cpu占用率
  10. Java 中 7 个潜在的内存泄露风险