我在jsoup
尝试了我的第一个严肃项目,并且我已经陷入了这个问题 -
我试图从网站上获取zipcodes。有一个zipcodes列表。
以下是提供邮政编码的行之一 -
<td align="center"><a href="http://www.zipcodestogo.com/Hialeah/FL/33011/">33011</a></td>
所以我的想法是浏览页面并获取包含6位数字的所有字符串。正则表达式是^[0-9]{6,6}$
代码是 -
doc.select("td:matchesOwn(^[0-9]{5,5}$)");
但没有出来。我无法找到从这个网站获取这些zipcodes的方法.... 有谁知道怎么做?
这里真正的问题是我如何获得不在任何标签中的数字,但只是在公开中写出(我猜有一个术语,但我对xml术语不是很好)
答案 0 :(得分:0)
我使用Element#getElementsMatchingOwnText
解决了它:
public static void main(String[] args) {
final String html = "<td align=\"center\"><a href=\"http://www.zipcodestogo.com/Hialeah/FL/33011/\">33011</a></td> ";
final Elements elements = Jsoup.parse(html).getElementsMatchingOwnText("^[0-9]{5,5}$");
for (final Element element : elements) {
System.out.println("element = [" + element + "]");
System.out.println("zip = [" + element.text() + "]");
}
}
element = [<a href="http://www.zipcodestogo.com/Hialeah/FL/33011/">33011</a>]
zip = [33011]