我想知道是否有任何可能的方法可以从这样的网站的html中提取这个: “testjob56”也不会是静态的
</tr>
</table>
<p> </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>
答案 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);
}
}
}