从示例中,我想从以下HTML代码中获取 name1,name2,name3和name4 。
<td width="200"><a>name1</a></td>
<td width="200">name2 </td>
<td width="200"><a>name3</a></td>
<td width="200">name4 </td>
现在如果您注意到 name1,而name3 位于 a 标记中,则 name2和name4 位于标记 td < / strong>即可。我使用两个单独的代码来获取名称,但它效率低且速度慢。上面的HTML代码只是真实代码的一部分。
try {
doc = Jsoup.connect("http://somesite.com").get();
// Here to get the names inside tag a
Elements links = doc.select("td a");
for (Element el : links) {
linkText = el.ownText();
arr_linkText.add(linkText);
}
//Here to get the names inside tag td
Elements linktwo = doc.select("td");
for (Element eltwo : linktwo) {
linkText = eltwo.ownText();
arr_linkText.add(linkText);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我的问题是如何比这种方法更快地获取名称?也许两个代码都可以。
谢谢!
答案 0 :(得分:0)
只需打印text
,
Elements list = doc.select("td[width=200]");
for(Element td: list) {
System.out.println(td.text());
}
答案 1 :(得分:0)
您可以使用','(逗号)运算符作为“OR”,这是您要在此处执行的操作。所以尝试做这样的事情:
try {
doc = Jsoup.connect("http://somesite.com").get();
Elements links = doc.select("td, td a");
for (Element el : links) {
arr_linkText.add(el.text());
}
} catch (IOException e) {
e.printStackTrace();
}