写一个 Java爬虫框架
时间: 2023-06-11 08:05:55 浏览: 137
java开源爬虫框架
好的,下面是一个简单的 Java 爬虫框架的示例代码:
```java
import java.io.IOException;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Spider {
private Queue<String> queue = new LinkedList<String>();
private Set<String> visited = new HashSet<String>();
public void crawl(String url) {
queue.offer(url);
visited.add(url);
while (!queue.isEmpty()) {
String currentUrl = queue.poll();
System.out.println("Visiting " + currentUrl);
Document doc;
try {
doc = Jsoup.connect(currentUrl).get();
} catch (IOException e) {
continue;
}
Elements links = doc.select("a[href]");
for (Element link : links) {
String linkUrl = link.attr("abs:href");
if (!visited.contains(linkUrl)) {
queue.offer(linkUrl);
visited.add(linkUrl);
}
}
}
}
public static void main(String[] args) {
Spider spider = new Spider();
spider.crawl("http://www.example.com");
}
}
```
这个爬虫框架使用了 Jsoup 库来解析 HTML 页面,并使用队列和集合来管理待爬取的链接和已经访问过的链接。它的基本思路是从起始链接开始,抓取页面上的所有链接,并将这些链接加入待爬取的链接队列,然后继续抓取这些链接指向的页面,直到队列为空为止。
阅读全文