我对页面中的检测网址有疑问。我找到了解决问题的最佳方法。对于下载页面,我使用Jsoup。
URI uri = new URI("http://www.niocchi.com/");
Document doc = Jsoup.connect(uri.toString()).get();
Elements links = doc.select("a")
这个页面给我一些链接。例如:
http://www.niocchi.com/#Package organization
http://www.niocchi.com/#Architecture
http://www.linkedin.com/in/ivanprado
http://www.niocchi.com/examples/
我只需要获得不同的页面而不引用段落。 我想从这个例子中得到:
http://www.linkedin.com/in/ivanprado
http://www.niocchi.com/examples/
答案 0 :(得分:0)
您可以将它们转换为字符串,然后根据#mark拆分它们。
例如:
public void stringSplitter() {
String result = null;
// example
String[] stringURL = {"http://www.niocchi.com/#Package organization", "http://www.niocchi.com/#Architecture",
"http://www.linkedin.com/in/ivanprado", "http://www.niocchi.com/examples/ "};
try {
for (int i = 0; i < stringURL.length; i++) {
String [] parts = stringURL[i].split("#");
result = parts[0];
System.out.println(result);
}
}catch (Exception ex) {
ex.printStackTrace();
}
}
输出结果为:
http://www.niocchi.com/
http://www.niocchi.com/
http://www.linkedin.com/in/ivanprado
http://www.niocchi.com/examples/
我甚至会考虑设置方法的一部分以仅返回唯一的网址
答案 1 :(得分:0)
您似乎只想选择具有<a>
属性的href
#
,其值为doc.select("a[href~=^[^#]+$]")
的字符。在这种情况下,您可以使用
attribute~=regex
attribute
是用于检查#
的部分值是否可以与正则表达式匹配的语法。
[^#]+
字符的正则表达式可能如下^
$
和^
anchors代表
$
- 字符串的开头,