0

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

Elements row = doc.select(.eventTableRow);
System.out.println(row);
//prints similar to below image :

http://postimg.org/image/blc5ob74b/38f0a081/

我无法上传图片,因为我没有 10 声望

我知道对你们中的许多人来说这是初级的,我肯定会获得 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 等这些是我一直在谷歌搜索的东西。

任何帮助表示赞赏。

ps 如果有人制作了使用 jsoup 进行一般性抓取或使用 java 抓取的白痴指南,我相信它会非常受欢迎。

4

2 回答 2

0

You can iterate all TD elements, here is working example:

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);
        }
    }

}

And it outputs:

Id : 1, classes : class1, value : value1
Id : 2, classes : class2, value : value2
Id : 3, classes : class3, value : value3
于 2013-06-08T19:41:12.493 回答
0

速写:

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

基本思想是对于每个具有以“code_”开头的 id 的元素,选择该元素中的所有内容并打印它。

于 2013-06-25T16:19:23.917 回答