这是一个爬虫程序,用于爬取某小说网站的强推榜中的小说内容,并将其存储到本地文件中。程序的主要流程如下:

  1. 创建一个HttpClient实例,用于发送HTTP请求。
  2. 访问小说网站首页,获取网页内容。
  3. 解析推榜单,得到书籍标题和href。
  4. 遍历每一本书籍,进入书籍主页。
  5. 解析书籍主页中的'免费阅读'按钮,得到书籍第一章的URL。
  6. 根据强推榜中的书籍标题,通过IO流,为每一本小说创建文件名。
  7. 循环读取每一章节的内容,并使用IO流存储到对应的文件中。

具体实现细节可以参考代码注释。

    public static void main(String[] args) throws IOException {
        Document document = null;
        String prefix = "https:";
         //小说网站首页,url屏蔽,读者可自行选择
        String url = "https://www.qidian.com/";
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //访问小说网首页
        HttpGet httpGet = new HttpGet(url);
        CloseableHttpResponse response = httpClient.execute(httpGet);
        if (response.getStatusLine().getStatusCode() == 200) {
            HttpEntity entity = response.getEntity();
            String html = EntityUtils.toString(entity, "UTF-8");
            document = Jsoup.parse(html);
            //解析推榜单,得到书籍标题和href
            Elements books = document.select(".wrap .index-two-wrap .book-list-wrap .book-list ul li strong a");
            for (Element book : books) {
                url = prefix + book.attr("href");
                //进入书籍主页
                httpGet = new HttpGet(url);
                response = httpClient.execute(httpGet);
                if (response.getStatusLine().getStatusCode() == 200) {
                    entity = response.getEntity();
                    html = EntityUtils.toString(entity, "UTF-8");
                    document = Jsoup.parse(html);
                    //解析书籍主页中的'免费阅读'按钮,得到书籍第一章的URL
                    url =prefix+ document.select("#readBtn").attr("href");
                    //根据强推榜中的书籍标题,通过IO流,为每一本小说创建文件名
                    FileWriter fw = new FileWriter("d:/test/" + book.text() + ".txt");
                    //循环读取每一章节的内容,并使用IO流存储到对应的文件中
                    while (true) {
                        httpGet = new HttpGet(url);
                        response = httpClient.execute(httpGet);
                        if (response.getStatusLine().getStatusCode() == 200) {
                            entity = response.getEntity();
                            //将内容转换成String
                            html = EntityUtils.toString(entity, "UTF-8");
                            document = Jsoup.parse(html);
                            Elements title = document.select("#j_chapterBox .text-wrap .main-text-wrap .text-head h3 .content-wrap");
                            Elements content = document.select("#j_chapterBox .text-wrap .main-text-wrap .read-content p");
                            Elements next = document.select("#j_chapterNext");
                            String href = next.attr("href");
                            url = prefix + href;
                            if (url.equals("https:")) {
                                break;
                            }
                            fw.write(title.text() + "\r\n");
                            for (Element e : content) {
                                fw.write(e.text() + "\r\n");
                            }
                        }
                    }
                    fw.close();
                }
            }
        }
    }```
Java爬虫实战:解析小说网站强推榜并下载小说内容

原文地址: https://www.cveoy.top/t/topic/ojOC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录