解析表的第一行不起作用

人气:592 发布:2022-10-16 标签: java parsing android jsoup

问题描述

我真的试了很多,也搜索了很多网站… 我试图用jSoup从一个网站上解析价格,但不起作用。

我试用的是:

    try {
                String str1 = "https://www.google.de/shopping/product/3996339592576509511?hl=de&q=4250155834791&oq=4250155834791&gs_l=products-cc.3...4306.7625.0.8037.13.6.0.7.0.0.60.314.6.6.0...0.0...1ac.1.LgJKDfZQvls&sa=X&ei=eeqlUY2zFNT54QSyloCoDw&ved=0CFIQgggwAA&prds=scoring:p";
                doc = Jsoup.connect(str3).get();
                final Elements elements = doc.select("td:lt(1)");

                String price = doc.select("span").first().text();

                System.out.println(price);
                System.out.println("Ende");
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

目标应该是提取产品的最低价格。 示例-页面:

https://www.google.de/shopping/product/3996339592576509511?hl=de&q=4250155834791&oq=4250155834791&gs_l=products-cc.3...4306.7625.0.8037.13.6.0.7.0.0.60.314.6.6.0...0.0...1ac.1.LgJKDfZQvls&sa=X&ei=eeqlUY2zFNT54QSyloCoDw&ved=0CFIQgggwAA&prds=scoring:p

我想解析向我显示结果的第一行。 在这种情况下:eBay 24-trade365。

我需要商品的价格和指向供应商的链接。

有人能帮忙吗?

推荐答案

如果您的表已经排序并且只需要第一行:

Element table=doc.getElementsByClass("os-main-table").first();
Element firstRow=table.select("tr[class=os-row").first();
Element seller=firstRow.select("td[class=os-seller-name]").first();
String sellerName=seller.text().trim();
String sellerLink=seller.getElementsByTag("a").first().attr("href");        
String price=firstRow.select("td[class=os-price-col").first().getElementsByClass("os-base_price").text();

您可以在http://jsoup.org/cookbook/extracting-data/dom-navigation

中找到有关JSoup导航的教程

942