基于java的Jsoup爬取小说(暂时只能爬取一本)

2018-08-03 07:29:56来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

因为爬取起点目录页找不到各个章节的url,因此只能一章一章的往下爬

分析下起点网页html

首先导入相关jar包 (我用的是gradle)

上代码

url="https://read.qidian.com/chapter/6xbxCkvMZqw1/OCcwrQf_B4Qex0RJOkJclQ2";
//伪装浏览器
Document document = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36").timeout(500000).get();
//获得书名
String bookName = document.getElementsByClass("book-cover-wrap").select("h1").text();
int i = 1;
//一直循环,直到找不到下一章url
 while (true) {
//获取章节名
       String name = document.select("h3[class = j_chapterName]").text();
//获取下一章的element
        Element element = document.getElementById("j_chapterNext");
        String nexturl;
//获取内容
        String fiction = document.select("div[class = read-content j_readContent]").select("p").toString();
//正则替换<p></p>
        String s = fiction.replaceAll("<\\/?p>", "");
        if (element == null) {
             break;
        }
        nexturl = "https:" + element.attr("href");
//is表示免费章节数(vip章节需要登录付费)loginUrl 表示vip章节的url
        if(i==is){
             i++;
             nexturl = loginUrl;
         }
         if (i >= is) {
            try {
           //获取vip章节,并带头文件,可能报400,500
                  document = Jsoup.connect(nexturl).header("", "").header("","").header("", "").header("", "").timeout(60000).get();
              } catch (Exception e) {
                  System.out.println("ss"+e.getMessage());
                  document = Jsoup.connect(nexturl).header("", "").header("", "").header("", "").header("", "").userAgent("").timeout(60000).get();
              }
          } else {
              i++;
              try {
                  document = Jsoup.connect(nexturl).timeout(60000).get();
              } catch (Exception e) {
                  System.out.println("----------------------");
              }
          }
      }

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:IDEA Inspections详解

下一篇:Kafka集群搭建