Java 网站抓取与Jsoup初学者

Java 网站抓取与Jsoup初学者,java,html,parsing,dom,jsoup,Java,Html,Parsing,Dom,Jsoup,我正试图使用jsoup来抓取一个网站。我使用源HTML中的class.eventTableRow将表行提取到Elements对象中,但我不确定如何访问各个单元格。我正在尝试获取单元格中的数据,如下图中的方框所示: Elements row = doc.select(.eventTableRow); System.out.println(row); //prints similar to below image : 我不能上传这张照片,因为我没有声誉 我知道对你们中的许多人来说,这是最基本的,我

我正试图使用jsoup来抓取一个网站。我使用源HTML中的class.eventTableRow将表行提取到Elements对象中,但我不确定如何访问各个单元格。我正在尝试获取单元格中的数据,如下图中的方框所示:

Elements row = doc.select(.eventTableRow);
System.out.println(row);
//prints similar to below image :
我不能上传这张照片,因为我没有声誉

我知道对你们中的许多人来说,这是最基本的,我肯定会得到jsoup文档的链接,但我已经阅读并尝试了几个小时,但无法让它为我工作

例如,我尝试过:

Elements result = race.select("[attr^=712]"); 
//im attempting to find all atributes beginning 712 but it doesn't work

Elements result = race.select(".o bgc co"); 
//im attempting to find the cells with this class
还有很多人,我真的不知道如何实现文档中的说明,这对我来说很难理解,我也找不到任何基本的教程

学习其他方面的知识能帮助我更好地理解jsoup文档吗,也许XML、DOM、解析HTML等等,这些都是我一直在谷歌搜索的东西

谢谢你的帮助


p、 s如果有人制作了一本关于使用jsoup进行抓取或使用java进行抓取的白痴指南,我相信它会非常流行。

您可以迭代所有TD元素,下面是一个工作示例:

package my.test;

import java.util.Iterator;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupTest1 {

    public static void main(String[] args) {

        Document doc = Jsoup.parse("<table><tr class='eventTableRow'><td id='1' class='class1'>value1</td><td id='2' class='class2'>value2</td><td id='3' class='class3'>value3</td></tr></table>");
        Elements row = doc.select(".eventTableRow td");
        Iterator<Element> iterator = row.listIterator();
        while(iterator.hasNext())
        {
            Element element = iterator.next();
            String id = element.attr("id");
            String classes = element.attr("class");
            String value = element.text();
            System.out.println("Id : " + id + ", classes : " + classes+ ", value : " + value);
        }
    }

}
速写:

    for(Element f : e.select("[id^=code_]")) {
        System.out.println("printed out links: " + f.select("*").text());
    }

基本思想是,每个元素都有一个以“code”开头的id,选择该元素中的所有内容并打印出来

您可以循环所有TD元素和您正在查找的只读元素。同意,但我将如何构造循环。我不理解允许我这么做的语法。我是在和孩子们打圈吗?节点?我读了很多书,但看不懂这些文档。Thx读了这么多,做了一件好事:我能问一下,有没有可能解释一下这一行--“Iterator Iterator=row.listIterator;”我试图搜索jsoup文档,但无法理解。
    for(Element f : e.select("[id^=code_]")) {
        System.out.println("printed out links: " + f.select("*").text());
    }