java爬虫,网页简易爬小说程序

package PaChong;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.jsoup.select.Elements;

import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Scanner;

public class Main {
    /**
     * @param strURL(链接地址)
     * @return
     */
    public static void is(String strURL) {
        is(strURL, "utf-8");
    }

    /**
     * @param strURL(链接地址)
     * @param charset(字符编码)
     * @return(返回字符串)
     */
    public static void is(String strURL, String charset) {
        getContentFromUrl(strURL, charset);
    }

    /**
     * @param myUrl(链接地址)
     * @param charset(字符编码)
     * @return (返回字符串)
     */
    public static void getContentFromUrl(String myUrl, String charset) {

        int start = 7449572;
        int end = 7450351;

        //
        String text = "";
        Scanner sc = null;
        InputStream is = null;
        BufferedOutputStream bs = null;

        try {
            bs = new BufferedOutputStream(new FileOutputStream("1234.txt", true));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        System.out.println("开始");
        for (int q = start; q <= end; q++) {
            //地址
            String UrlAddress = "";
            try {
                StringBuffer sb = new StringBuffer();

                UrlAddress = "https://www.biquges.com/11_11744/" + q + ".html";
//                UrlAddress = "http://www.022003.com/9_9198/"+q+".html";
                URL url = new URL(UrlAddress);
                URLConnection urlConnection = url.openConnection();
                is = urlConnection.getInputStream();

//                byte [] b = new byte[65535];
//                int len;
//                while((len = is.read(b)) != -1){
//                    bs.write(b,0,len);
//                    System.out.println(new String(b,0,len,"UTF-8"));
//                }
                sc = new Scanner(is, charset);
                while (sc.hasNextLine()) {
                    sb.append(sc.nextLine()).append("\r\n");
                }
                Document document = Jsoup.parseBodyFragment(sb.toString());
                Element bookname = document.getElementsByTag("h1").get(0);
                bs.write(bookname.text().getBytes());
                System.out.println(bookname.text());
                Element content = document.getElementById("content");
                List<Node> nodes = content.childNodes();
                for (int i = 0; i < nodes.size() - 1; i++) {
                    Node cc = nodes.get(i);
                    if (cc != null && !" ".equals(cc.toString()) && !"<br>".equals(cc.toString())) {
//                        System.out.println(cc.toString().replaceAll("&nbsp;", ""));
                        bs.write(cc.toString().replaceAll("&nbsp;", "").getBytes());
                        bs.write("\r\n".getBytes());
                    }
                }
                bs.write("\r\n".getBytes());

            } catch (Exception e) {
                System.out.println(UrlAddress + "====》》》访问异常。。。");
                continue;
            }
        }
        if (sc != null) {
            sc.close();
        }
        if (is != null) {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (bs != null) {
            try {
                bs.close();
            } catch (IOException e) {
            }
        }
        System.out.println("结束");

    }

    public static void main(String[] args) {
        /*
         * 使用示例
         */
        Main.is("");
        /*
         * 使用示例
         */
//        Main.is("https://www.biquges.com/11_11744/7449454.html", "utf-8");
    }
}

结果:

原文地址:https://www.cnblogs.com/pastjx/p/12503422.html

时间: 2024-10-25 00:27:47

java爬虫,网页简易爬小说程序的相关文章

python爬虫之初步爬图程序

# -*- coding:utf-8 -*- import requests, re, os url = 'http://tieba.baidu.com/p/5307547413' header = { 'Accept': '*/*', 'Accept-Encoding':'gzip,deflate,sdch', 'Accept-Language':'zh-CN,zh;q=0.8', 'Connection':'keep-alive' } html = requests.get(url,head

福利贴——爬取美女图片的Java爬虫小程序代码

自己做的一个Java爬虫小程序 废话不多说,先上图. 文件夹命名是用标签缩写,如果大家看得不顺眼可以等下载完成后手动改一下,比如像有强迫症的我一样... 这是挂了一个晚上下载的总大小,不过还有很多因为一些问题没有遍历下载到,而且会产生很多空文件,最下面我附带了一个递归删除空文件夹的小程序代码. 接下来是文件夹内部~ 图片存放位置默认为d:\picture,可在程序中更改,main函数的开头就是,有注释.爬取的网站为http://www.mmonly.cc/,大家有更好的资源网站可以私我. 爬虫源

java实现网页爬虫

接着上面一篇对爬虫需要的java知识,这一篇目的就是在于网页爬虫的实现,对数据的获取,以便分析. -----> 目录:   1.爬虫原理 2.本地文件数据提取及分析 3.单网页数据的读取 4.运用正则表达式完成超连接的连接匹配和提取 5.广度优先遍历,多网页的数据爬取 6.多线程的网页爬取 7.总结 爬虫实现原理 网络爬虫基本技术处理 网络爬虫是数据采集的一种方法,实际项目开发中,通过爬虫做数据采集一般只有以下几种情况: 1) 搜索引擎 2) 竞品调研 3) 舆情监控 4) 市场分析 网络爬虫的

Java正则表达式--网页爬虫

网页爬虫:其实就一个程序用于在互联网中获取符合指定规则的数据 爬取邮箱地址,爬取的源不同,本地爬取或者是网络爬取 (1)爬取本地数据: 1 public static List<String> getMails() throws IOException { 2 // 1.读取源文件 3 // 爬取本地文件 4 BufferedReader bufr = new BufferedReader(new FileReader("D:\\mail.txt")); 5 // 2.对读

java爬虫爬取网页内容前,对网页内容的编码格式进行判断的方式

近日在做爬虫功能,爬取网页内容,然后对内容进行语义分析,最后对网页打标签,从而判断访问该网页的用户的属性. 在爬取内容时,遇到乱码问题.故需对网页内容编码格式做判断,方式大体分为三种:一.从header标签中获取Content-Type=#Charset:二.从meta标签中获取Content-Type=#Charset:三.根据页面内容分析编码格式. 其中一/二方式并不能准确指示该页面的具体编码方式,周全考虑,加入第三种方式. 第三种方式引入开源jar包info.monitorenter.cp

Python3.x爬虫教程:爬网页、爬图片、自动登录

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文将使用Python3.4爬网页.爬图片.自动登录.并对HTTP协议做了一个简单的介绍.在进行爬虫之前,先简单来进行一个HTTP协议的讲解,这样下面再来进行爬虫就是理解更加清楚. 一.HTTP协议 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作

Golang 简单爬虫实现,爬取小说

为什么要使用Go写爬虫呢? 对于我而言,这仅仅是练习Golang的一种方式. 所以,我没有使用爬虫框架,虽然其很高效. 为什么我要写这篇文章? 将我在写爬虫时找到资料做一个总结,希望对于想使用Golang写爬虫的你能有一些帮助. 爬虫主要需要解决两个问题: 获取网页 解析网页 如果这两个都无法解决的话就没法再讨论其他了. 开发一个爬取小说网站的爬虫会是一个不错的实践. 这是两个实例: Golang 简单爬虫实现 golang 用/x/net/html写的小爬虫,爬小说 这是需要的两个项目: go

Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲

在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天就来实战下,用他们来抓取酷狗音乐网上的 Top500排行榜音乐.接下来的代码中除了会用到HttpClient和Jsoup之外,还会用到log4j和ehcache,分别用来记录日志和实现缓存,如果看官对这两个不是很熟悉的话,请自行百度,现在网上的入门实例有很多,我就不专门记笔记了. 那为什么会想到爬取

java爬虫爬取学校毕设题目

背景 效果 思路 代码准备 依赖(jar包): 建表 代码 java爬虫过程解析 如何解决分页问题 背景 最近很多大四学生问我毕业设计如何选题 “你觉得图书管理系统怎么样?” “导师不让做这个,说太简单” “那你觉得二手交易平台怎么样?” “导师说没新意,都有咸鱼了你做这个有什么意思?要新颖的” “那你觉得个人博客平台的搭建怎么样?” “啥是博客?” “emmmm……在线售票怎么样?” “导师说今年不让选xx管理系统,这些都太简单” “那你觉得做人脸识别或者垃圾自动分类怎么样” “导师说这些太难