计科前沿 || 用java获取小说网页章节列表

优采云 发布时间: 2022-06-07 06:27

  计科前沿 || 用java获取小说网页章节列表

  熟悉网络的人

  想必都有了解过“网络爬虫”吧!

  网络爬虫是一种按照一定的规则

  自动地抓取万维网信息的程序或者脚本

  (当然以小编的实力还做不出来)

  

  今天小编就通过一段代码

  来获取小说网页上指定小说的章节列表

  (比如笔趣读里的圣墟:)

  

  首先我们需要在网上下载jsoup这个jar包

  jsoup 是一款Java 的HTML解析器

  可直接解析某个URL地址、HTML文本内容

  Jsoup下载地址:

  

  接下来就是代码了

  。。。

  

  importjava.io.BufferedReader;

  importjava.io.IOException;

  importjava.io.InputStreamReader;

  .URL;

  .URLConnection;

  importjava.util.ArrayList;

  importjava.util.List;

  importorg.jsoup.Jsoup;

  importorg.jsoup.nodes.Document;

  importorg.jsoup.nodes.Element;

  importorg.jsoup.select.Elements;

  publicclassChapter {

  /**

  * 网页数据获取方法

  * @paramurl

  * @paramencoding

  * @return

  */

  publicstaticString getHtmlResourceByUrl(String url,String encoding)

  {

  StringBuffer buffer= newStringBuffer();

  InputStreamReader isr= null;

  try{

  //建立网络链接,将字符串形式的链接地址转换为网络链接

  URL urlObj= newURL(url);

  //打开网络链接

  URLConnection uc= urlObj.openConnection();

  isr= newInputStreamReader(uc.getInputStream(),encoding);

  //建立缓冲

  BufferedReader reader= newBufferedReader(isr);

  String line= "";

  while((line=reader.readLine())!=null)

  {

  //一边读,一边写

  buffer.append(line+"\n");

  }

  } catch(Exception e){

  e.printStackTrace();

  }

  finally{

  try{

  if(isr!=null)

  isr.close();

  } catch(IOException e){

  e.printStackTrace();

  }

  }

  returnbuffer.toString();

  }

  /**

  * 数据筛选核心方法

  * @paramurl

  * @return

  */

  publicstaticList getsChapter(String url)

  {

  String html= getHtmlResourceByUrl(url,"utf-8");//获取网页源代码

  List Chapters= newArrayList();

  //解析源代码

  Document document= Jsoup.parse(html);

  //获取章节列表

  Elements elements= document.select("#list dd a");

  //遍历所有的章节

  for(Element el: elements)

  {

  String chapter;

  chapter=el.text();//获取章节名

  Chapters.add(chapter+"\n");

  }

  returnChapters;

  }

  publicstaticvoidmain(String[] orgs){

  List Chapters= newArrayList();

  //在此处输入指定小说章节网址

  Chapters= getsChapter("");

  for(String chapter: Chapters){

  System.out.println(chapter);

  }

  }

  }

  将这段代码运行之后,就能得到《圣墟》的章节列表了

  

  怎么样,想不想试一试?

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线