You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
3 weeks ago | |
|---|---|---|
| .. | ||
| .idea | 3 weeks ago | |
| data | 3 weeks ago | |
| output | 3 weeks ago | |
| src | 3 weeks ago | |
| .gitignore | 3 weeks ago | |
| 202506050210-罗嘉乐-期末实验报告.docx | 3 weeks ago | |
| README.md | 3 weeks ago | |
| build.log | 3 weeks ago | |
| build_log.txt | 3 weeks ago | |
| build_output.txt | 3 weeks ago | |
| crawler.properties | 3 weeks ago | |
| douban_top250.txt | 3 weeks ago | |
| pom.xml | 3 weeks ago | |
| run.bat | 3 weeks ago | |
README.md
Web Crawler Application
基于 Java 的多网站爬虫应用,采用 MVC、Command 模式、策略模式和完整的异常体系设计。
功能特性
- 爬取豆瓣电影排行榜
- 爬取豆瓣读书排行榜
- 爬取 Books to Scrape 网站
- 数据保存为 JSON 格式文件
- 支持交互式和命令行模式
项目架构
设计模式
-
MVC 模式
- Model:
Movie,Book,ScrapeBook - View:
ConsoleView - Controller:
CrawlerController
- Model:
-
策略模式 (Strategy Pattern)
CrawlerStrategy接口DoubanMovieStrategy- 豆瓣电影策略DoubanBookStrategy- 豆瓣读书策略BooksToScrapeStrategy- Books to Scrape 策略
-
命令模式 (Command Pattern)
Command接口CrawlCommand- 单个爬虫命令CrawlAllCommand- 组合命令,执行所有爬虫
-
异常体系
CrawlerException- 基类异常NetworkException- 网络异常ParseException- 解析异常FileException- 文件操作异常
使用方法
编译项目
mvn clean package
运行方式
1. 交互式模式
java -jar target/web-crawler-1.0-SNAPSHOT.jar -i
2. 命令行模式
爬取所有网站:
java -jar target/web-crawler-1.0-SNAPSHOT.jar
爬取指定网站:
java -jar target/web-crawler-1.0-SNAPSHOT.jar -s douban-movie
java -jar target/web-crawler-1.0-SNAPSHOT.jar -s douban-book
java -jar target/web-crawler-1.0-SNAPSHOT.jar -s books-to-scrape
查看帮助:
java -jar target/web-crawler-1.0-SNAPSHOT.jar --help
输出文件
爬取的数据将保存到 data/ 目录下:
douban_movies.json- 豆瓣电影数据douban_books.json- 豆瓣读书数据books_to_scrape.json- Books to Scrape 数据
依赖项
- Jsoup - HTML 解析
- Gson - JSON 处理
- Picocli - 命令行解析
- SLF4J - 日志框架