Java爬虫怎么实现Jsoup利用dom方法遍历Document对象
这篇文章主要讲解了"Java爬虫怎么实现Jsoup利用dom方法遍历Document对象",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java爬虫怎么实现Jsoup利用dom方法遍历Document对象"吧!
先给出网页地址:
https://wall.alphacoders.com/featured.php?lang=Chinese
主要步骤:
利用Jsoup的connect方法获取Document对象
String html = "https://wall.alphacoders.com/featured.php?lang=Chinese";Document doc = Jsoup.connect(html).get();
内容过长,就不再显示。
我们以这部分为例:
我们先找到所有的ul:
Elements elements = doc.getElementsByTag("ul");
输出如下:
可以发现class为"nav nav-pills"的只有一个,我们找到它:
Elements elements = doc.getElementsByTag("ul"); //System.out.println(elements);Element tempElement = null;for(Element element : elements) { if (element.className().equals("nav nav-pills")) { tempElement = element; //System.out.println(element.className()); break; }}
循环遍历这个ul,输出其中每一个li里每一个a的href和rel属性:
Elements li = tempElement.getElementsByTag("li");for(Element element : li) { Elements element2 = element.getElementsByTag("a"); for(Element element3 : element2) { String hrefString = element3.attr("href"); String relString = element3.attr("rel"); if(hrefString != "" && relString != "") { System.out.println("href=" + hrefString + " rel="external nofollow" rel="external nofollow" " + "rel=" + relString); } }}
最终结果:
href=https://alphacoders.com/site/about-us rel=nofollow
href=https://alphacoders.com/site/faq rel=nofollow
href=https://alphacoders.com/site/privacy rel=nofollow
href=https://alphacoders.com/site/tos rel=nofollow
href=https://alphacoders.com/site/acceptable_use rel=nofollow
href=https://alphacoders.com/site/etiquette rel=nofollow
href=https://alphacoders.com/site/advertising rel=nofollow
完整代码:
import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import java.io.IOException;import org.jsoup.Jsoup;/** * @ClassName: Jsoup_Test * @description: * @author: KI * @Date: 2020年8月17日 下午8:15:14 */public class Jsoup_Test { public static void main(String[] args) throws IOException { // TODO 自动生成的方法存根 String html = "https://wall.alphacoders.com/featured.php?lang=Chinese"; Document doc = Jsoup.connect(html).get(); System.out.println(doc); Elements elements = doc.getElementsByTag("ul"); //System.out.println(elements); Element tempElement = null; for(Element element : elements) { if (element.className().equals("nav nav-pills")) { tempElement = element; //System.out.println(element.className()); break; } } System.out.println(tempElement); Elements li = tempElement.getElementsByTag("li"); for(Element element : li) { Elements element2 = element.getElementsByTag("a"); for(Element element3 : element2) { String hrefString = element3.attr("href"); String relString = element3.attr("rel"); if(hrefString != "" && relString != "") { System.out.println("href=" + hrefString + " rel="external nofollow" rel="external nofollow" " + "rel=" + relString); } } } }}
感谢各位的阅读,以上就是"Java爬虫怎么实现Jsoup利用dom方法遍历Document对象"的内容了,经过本文的学习后,相信大家对Java爬虫怎么实现Jsoup利用dom方法遍历Document对象这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!