我们如何才能找到页面中的超链接.
以及如何找出他们都是什么?我需要开发计划java中的东西而不是任何框架工作,这意味着,使用
JAVA.NET.*; 方法,任何范围?我该怎么做?
你们能给我一个恰当的例子吗?
我需要获取页面中的所有链接,我需要将其保存在数据库中,所有链接都与域名
您可以使用javax.swing.text.html和javax.swing.text.html.parser包来实现此目的:
import java.io.*;
import java.net.URL;
import java.util.Enumeration;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;
public class Test {
public static void main(String[] args) throws Exception {
Reader r = null;
try {
URL u = new URL(args[0]);
InputStream in = u.openStream();
r = new InputStreamReader(in);
ParserDelegator hp = new ParserDelegator();
hp.parse(r, new HTMLEditorKit.ParserCallback() {
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
// System.out.println(t);
if(t == HTML.Tag.A) {
Enumeration attrNames = a.getAttributeNames();
StringBuilder b = new StringBuilder();
while(attrNames.hasMoreElements()) {
Object key = attrNames.nextElement();
if("href".equals(key.toString())) {
System.out.println(a.getAttribute(key));
}
}
}
}
}, true);
}finally {
if(r != null) {
r.close();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
编译并以这种方式调用它:
java Test http://www.oracle.com/technetwork/java/index.html
Run Code Online (Sandbox Code Playgroud)
尝试使用jsoup库.
下载项目jar并编译此代码段:
Document doc = Jsoup.parse(new URL("http://www.bits4beats.it/"), 2000);
Elements resultLinks = doc.select("a");
System.out.println("number of links: " + resultLinks.size());
for (Element link : resultLinks) {
System.out.println();
String href = link.attr("href");
System.out.println("Title: " + link.text());
System.out.println("Url: " + href);
}
Run Code Online (Sandbox Code Playgroud)
该代码在html页面中打印超文本元素的数量并显示它们的信息.
| 归档时间: |
|
| 查看次数: |
8044 次 |
| 最近记录: |