给我写一个Java爬虫代码,用来爬小说
时间: 2023-02-06 12:07:50 浏览: 66
java实现爬虫爬网站图片的实例代码
下面是一个 Java 爬虫的示例代码,它可以用来爬取小说:
```
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class NovelCrawler {
private static final int MAX_DEPTH = 3; // 最大爬取深度
private List<String> visitedUrls = new ArrayList<>(); // 已访问的 URL 列表
public void crawl(String url, int depth) {
if (depth > MAX_DEPTH) {
return; // 超过最大深度则停止爬取
}
try {
// 访问页面
Document doc = Jsoup.connect(url).get();
Elements links = doc.select("a[href]"); // 获取页面中的链接
// 遍历链接
for (Element link : links) {
String linkUrl = link.attr("abs:href"); // 获取完整的 URL 地址
if (!visitedUrls.contains(linkUrl)) { // 如果没有访问过
visitedUrls.add(linkUrl); // 标记为已访问
System.out.println("URL: " + linkUrl); // 输出 URL
// 爬取下一级页面
crawl(linkUrl, depth + 1);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
NovelCrawler crawler = new NovelCrawler();
crawler.crawl("http://www.example.com/novel/index.html", 0); // 从给定的 URL 开始爬取
}
}
```
这个爬虫代码使用了 Jsoup 库来解析 HTML 页面,并使用深度优先搜索的方式遍历页面中的所有链接。在爬取过程中,它会输出所有访问过的 URL 地址。
这仅仅是一个简单的爬虫示
阅读全文