【问题标题】:Get tabledata from html, JSOUP从html、JSOUP获取tabledata
【发布时间】:2013-05-28 16:13:50
【问题描述】:

从 url 从表中提取数据的最佳方法是什么?

简而言之,我需要从这两个表中获取实际数据:http://www.oddsportal.com/sure-bets/

在本例中,数据为“Paddy power”和“3.50” 看这张图片:

(很抱歉发布这样的图像,但我仍然需要声誉,我稍后会编辑) http://img837.imageshack.us/img837/3219/odds2.png

我尝试过使用 Jsoup,但我不知道这是否是最好的方法? 而且我似乎无法在表格中正确导航,我尝试过这样的事情:

    tables = doc.getElementsByAttributeValueStarting("class", "center"); 
    link = doc.select("div#col-content > title").first();
    String text1 = doc.select("div.odd").text();

表格的东西似乎得到了一些数据,但不包括表格中的文本

【问题讨论】:

    标签: html web-scraping jsoup


    【解决方案1】:

    对不起,伙计。您要检索的第二个字段由 JavaScript 填充。 Jsoup 不执行 JavaScript。 要选择第一行的标题,您可以使用:

    Document doc = Jsoup.connect("http://www.oddsportal.com/sure-bets/").get();
         Elements tables = doc.select("table.table-main").select("tr:eq(2)").select("td:eq(2)");
         System.out.println(tables.select("a").attr("title"));
    

    用于可视化的链选择。

    【讨论】:

    • 哦,真可惜.. 有没有办法让 JavaScript 以某种方式填充数据?
    • 不幸的是 Jsoup 没有,但请在此处查看我的回答:stackoverflow.com/questions/13666453/… 我列出了一些可能对您有所帮助的库。
    • 我对编程还是很陌生 :( 这些其他库中哪一个能最好/最简单地处理我的问题?我真的找不到任何好的例子
    • @Yoshidk HtmlUnit 我认为最适合你。您可以在他们的网站htmlunit.sourceforge.net/gettingStarted.html 上找到示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    相关资源
    最近更新 更多