Java通过jsoup解析整个网站需要的内容
来源:互联网 发布:刚开的淘宝店怎么做 编辑:程序博客网 时间:2024/05/18 01:12
接上上一篇爬取起点小说网的内容说,上一篇只是获取小说名、章节以及章节链接,然后总是感觉不太好,并不能达到获取到整个网站的效果,用户在用时还得自己联网,故改进了改进,这一篇讲能够完全解析小说网,直到解析到内容为止。
与上一篇思路是一样的,不同的是,在解析时用递归的方式,将获取到这个链接传值到下一个解析入口,层层解析。与上一篇代码不同的是SpilderNovel中的代码,这一篇将只粘贴这一块的代码,对于其他模块的代码,有需要的请看前面的文章。
下面附上代码块:
package xuf.main;import java.util.ArrayList;import java.util.Date;import java.util.stream.Stream;import org.jsoup.Connection;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import org.w3c.dom.stylesheets.LinkStyle;import xuf.entity.NovelAttribute;import xuf.service.INovel;import xuf.service.NovelImpl;public class SpiderNovel { public static void main(String[] args) { // 数据持久化对象,用于将信息存入数据库 INovel iNovel = new NovelImpl(); Long startTime, endTime; System.out.println("小爬虫工作启动。。。。。。。。。。。"); startTime = new Date().getTime(); Document document; try { NovelAttribute novelAttribute = new NovelAttribute(); document = Jsoup.connect("http://www.qidian.com/").get(); Elements results0 = document.select("div.classify-list > dl > dd > a[href]"); for (Element e0 : results0) { String fictionUr0 = e0.attr("abs:href"); ArrayList<String> list0 = new ArrayList<String>(); list0.add(fictionUr0); String[] strArray0 = (String[]) list0.toArray(new String[0]); for (String strurl0 : strArray0) { System.out.println(strurl0); document = Jsoup.connect(strurl0).get(); Elements results1 = document.select("div.channel-focus > div.big-list > ul > li > h3 > a[href]"); for (Element e1 : results1) { String fictionUrl1 = e1.attr("abs:href"); ArrayList<String> list1 = new ArrayList<String>(); list1.add(fictionUrl1); String[] strArray1 = (String[]) list1.toArray(new String[0]); for (String strurl1 : strArray1) { System.out.println(fictionUrl1); document = Jsoup.connect(fictionUrl1).get(); Elements results2 = document.select("div.catalog-content-wrap > div.volume-wrap > div.volume > ul > li > a[href]"); for (Element e2 : results2) { String fictionUrl2 = e2.attr("abs:href"); ArrayList<String> list2 = new ArrayList<String>(); list2.add(fictionUrl2); String[] strArray2 = (String[]) list2.toArray(new String[0]); for (String strurl2 : strArray2) { System.out.println(strurl2); } document = Jsoup.connect(fictionUrl2).get(); Elements results4 = document.select("div.book-cover-wrap > h1"); for (Element e4 : results4) { String fictionName = e4.text(); novelAttribute.setFictionName(fictionName); } Elements results3 = document.select("h3.j_chapterName"); for (Element e3 : results3) { String fictionChapter = e3.text(); novelAttribute.setFictionChapter(fictionChapter); } Elements results5 = document.select("div.read-content"); for (Element e5 : results5) { String fictionContent = e5.text(); novelAttribute.setFictionContent(fictionContent); } iNovel.SaveAttribute(novelAttribute); } } } } } } catch (Exception e) { e.printStackTrace(); } endTime = new Date().getTime(); System.out.println("工作结束,用时" + (endTime - startTime) + "ms"); }}
以上就是这次的一个小的改动。
阅读全文
0 0
- Java通过jsoup解析整个网站需要的内容
- java-jsoup解析html页面的内容
- java-jsoup解析html页面的内容
- [Jsoup] Jsoup解析中需要注意的问题
- 通过jsoup工具实现java解析html
- Jsoup解析网页内容
- jsoup通过获取的内容写自己的页面
- java模拟登录校内成绩查询网站,将获得的HTML代码用jsoup解析
- java模拟登录校内成绩查询网站,将获得的HTML代码用jsoup解析
- Jsoup解析HTML 标签内容
- 利用 jsoup 解析 html内容
- Java 的HTML 解析器-jsoup
- java 解析 html 的利器-->jsoup
- Jsoup 一款Java的HTML解析器
- jsoup解析网站资源。Android
- java解析XML--jsoup
- 使用java的html解析器jsoup实现一个自动重复抓取任意网站页面指定元素的web应用
- 网站内容更新需要注意的要点
- Java基础--复用类(组合和继承)
- 微服务实战(六):选择微服务部署策略
- myflag step10:flagdao的编写
- sql基础1
- Toolbar常见用法总结
- Java通过jsoup解析整个网站需要的内容
- Unicode的理解
- 多线程编程
- N个孩子站一行分糖
- Android Studio配置Kotlin开发环境的最简单方式
- Linux内核数据结构之链表list.h
- http协议中各个响应状态200、400等返回值的含义
- MySQL 查看连接数及状态信息
- WCF事物