如何检测 URL 到不同的页面(也在同一域中)
How to detect URL to different page (also in the same domain)
我对在页面中检测 url 有疑问。我正在寻找解决问题的最佳方法。对于下载页面,我使用 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/
您可以将它们转换为字符串,然后根据# 标记拆分它们。
例如:
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/
我什至会考虑将方法的一部分设置为 return only unique URL's
看起来您只想 select 这些 <a>
具有 href
属性的值是从 #
以外的字符构建的。在这种情况下,您可以使用
doc.select("a[href~=^[^#]+$]")
attribute~=regex
是用于检查 attribute
的部分值是否可以与正则表达式匹配的语法。
- 接受一个或多个非
#
字符的正则表达式可以像这样 [^#]+
- 正则表达式只接受整个字符串(不仅是它的一部分)需要用
^
和 $
包围 anchors 代表
^
- 字符串的开头,
$
字符串结尾。
我对在页面中检测 url 有疑问。我正在寻找解决问题的最佳方法。对于下载页面,我使用 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/
您可以将它们转换为字符串,然后根据# 标记拆分它们。
例如:
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/
我什至会考虑将方法的一部分设置为 return only unique URL's
看起来您只想 select 这些 <a>
具有 href
属性的值是从 #
以外的字符构建的。在这种情况下,您可以使用
doc.select("a[href~=^[^#]+$]")
attribute~=regex
是用于检查 attribute
的部分值是否可以与正则表达式匹配的语法。
- 接受一个或多个非
#
字符的正则表达式可以像这样[^#]+
- 正则表达式只接受整个字符串(不仅是它的一部分)需要用
^
和$
包围 anchors 代表^
- 字符串的开头,$
字符串结尾。