写一个蠕虫代码用java简单一点
时间: 2023-06-17 22:02:58 浏览: 99
以下是一个简单的Java蠕虫示例代码:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Set;
public class WebCrawler {
private Queue<String> queue;
private Set<String> visitedUrls;
public WebCrawler() {
queue = new LinkedList<String>();
visitedUrls = new HashSet<String>();
}
public void crawl(String url) {
queue.add(url);
visitedUrls.add(url);
while (!queue.isEmpty()) {
String nextUrl = queue.poll();
System.out.println("Visiting " + nextUrl);
try {
URL urlObject = new URL(nextUrl);
BufferedReader in = new BufferedReader(new InputStreamReader(urlObject.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
if (inputLine.contains("href=\"")) {
String link = inputLine.substring(inputLine.indexOf("href=\"") + 6, inputLine.indexOf("\"", inputLine.indexOf("href=\"") + 6));
if (link.startsWith("http") && !visitedUrls.contains(link)) {
visitedUrls.add(link);
queue.add(link);
}
}
}
in.close();
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
}
public static void main(String[] args) {
WebCrawler crawler = new WebCrawler();
crawler.crawl("https://www.baidu.com");
}
}
```
这个蠕虫程序从指定的URL开始爬取网页,并查找每个网页中的超链接。它将未访问过的链接添加到队列中,以便稍后访问。程序会一直进行,直到队列为空。注意,这个简单的示例代码没有包括任何链接深度或其他高级功能。
阅读全文