千家信息网

Java爬虫怎么实现Jsoup利用dom方法遍历Document对象

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,这篇文章主要讲解了"Java爬虫怎么实现Jsoup利用dom方法遍历Document对象",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java爬虫怎么
千家信息网最后更新 2024年09月21日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对象这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0