Jsoup如何从html中提取这样的东西

时间:2016-09-25 05:18:03

标签: html jsoup

我想知道是否有任何可能的方法可以从这样的网站的html中提取这个: “testjob56”也不会是静态的

            </tr>
        </table>

        <p>&nbsp;</p>

        <table style="margin: auto">
            <tr>
                <th colspan="2" style="text-align: center">Used nicknames</th>
            </tr>
            <tr>
                <th>Seen on</th>
                <th>Nickname</th>
            </tr>
                            <tr>
                <td>2016-09-20 04:52:21</td>
                <td style="max-width: 400px">colored immunity man</td>
            </tr>
                            <tr>
                <td>2012-05-02 16:24:49</td>
                <td style="max-width: 400px">testjob56</td>
            </tr>
                        </table>
                <!-- /main -->
    </div>

enter image description here

1 个答案:

答案 0 :(得分:0)

这样做的一种方法如下。此代码段使用样式元素搜索所有TD。在此之后,您应该能够一次获得一个元素并使用过滤器说明样式(最大宽度)。您应该能够使用选择器,但取决于您的DOM。您可以找到有关here

的信息
import java.io.IOException;

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

public class JSoupMain {

    public static void main(String[] args) throws IOException {

        String html = "<table style=\"margin: auto\">            <tr>                <th colspan=\"2\" style=\"text-align: center\">Used nicknames</th>            </tr>            <tr>                <th>Seen on</th>                <th>Nickname</th>            </tr>                            <tr>                <td>2016-09-20 04:52:21</td>                <td style=\"max-width: 400px\">colored immunity man</td>            </tr>                            <tr>                <td>2012-05-02 16:24:49</td>                <td style=\"max-width: 400px\">testjob56</td>            </tr>                        </table>";

        Document doc = Jsoup.parse(html, "", Parser.xmlParser());
        /*
         * Document doc = (Document) Jsoup .connect(
         * "https://www.google.com/search?hl=en&gl=us&tbm=nws&authuser=0&q=" +
         * "technology") .ignoreContentType(true) .userAgent(
         * "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0"
         * ).get();
         */

        // Element link = doc.select("").first();
        // Elements td = doc.select("[style*='max-width: 400px']");
        Elements tds = doc.select("td[style]");
        for (Element td : tds) {
            System.out.println(td);
        }

    }

}