如何在关键短语之间获取字符串的某个部分(java)



所以我正在制作一个程序,从网站上抓取街道名称并将其搜索到另一个网站,但我很难从html代码中获取名称。因此,使用下面的代码,我如何获得字符串的关键字,每当 html 中出现街道名称时,该关键字就会隔离?下面是一段 html,

align="left"><td>490</td><td><a href="map.php?p=texas&id=74932">Woodland Heights Cir</a></td></tr>**<tr align="left"><td>491</td><td><a href="map.php?p=texas&id=74933">Woodmoor Dr</a></td></tr><tr align="left"><td>492</td><td><a href="map.php?p=texas&id=74934">Woodmoor Ln</a></td></tr><tr align="left"><td>493</td><td><a href="map.php?p=texas&id=74935">Woodstock Dr</a></td></tr><tr align="left"><td>494</td><td><a href="map.php?p=texas&id=74936">Woodvale Ct</a></td></tr><tr align="left"><td>495</td><td><a href="map.php?p=texas&id=74937">Zermatt Ct</a></td></tr></table></div>

我知道每当发生</a></td></tr>时,街道名称都会在它之前被提及,并且">"位于街道名称的开头。所以我基本上需要获取这两者之间的所有内容,并将其添加到字符串中发生的每个实例的数组中。

如果措辞有点糟糕,请原谅我,我对 Java 和一般编程非常陌生,不知道该怎么称呼这样的东西。

如果你想要快速和肮脏,请使用模式匹配器(https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html - 文档中的示例(来匹配链接,如下所示:

String text = "...blah<a href="map.php?p=texas&id=74932">Woodland Heights Cir</a>.blah...";
String patternString = "<a href="map.php.*">.*</a>"; 
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(text);
int count = 0;
while(matcher.find()) {
System.out.println("found: " + matcher.group(count));
String[] result = matcher.group(count).split(">")[1].split("<")[0];
count++;
}

(未经测试,但应该足够接近(。

此处提供示例的详细信息:http://tutorials.jenkov.com/java-regex/matcher.html

或者,也有像JSoup这样的库可以帮助完成此过程。

网络抓取也可能值得您一看 https://www.scrapingbee.com/blog/introduction-to-web-scraping-with-java/

最新更新