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.
 
 
Luojiale 5167489aa5 爬虫项目报告 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 格式文件
  • 支持交互式和命令行模式

项目架构

设计模式

  1. MVC 模式

    • Model: Movie, Book, ScrapeBook
    • View: ConsoleView
    • Controller: CrawlerController
  2. 策略模式 (Strategy Pattern)

    • CrawlerStrategy 接口
    • DoubanMovieStrategy - 豆瓣电影策略
    • DoubanBookStrategy - 豆瓣读书策略
    • BooksToScrapeStrategy - Books to Scrape 策略
  3. 命令模式 (Command Pattern)

    • Command 接口
    • CrawlCommand - 单个爬虫命令
    • CrawlAllCommand - 组合命令,执行所有爬虫
  4. 异常体系

    • 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 - 日志框架