diff --git a/w11/ASiteCrawlStrategy.java b/w11/ASiteCrawlStrategy.java new file mode 100644 index 0000000..93daa9a --- /dev/null +++ b/w11/ASiteCrawlStrategy.java @@ -0,0 +1,15 @@ +package com.example.datacollect; + +// 先定义爬虫策略接口(必须先建这个,否则ASiteCrawlStrategy会报错) +public interface ASiteCrawlStrategy { + void crawl(String url); +} + +// A网站爬虫策略类(实现上面的接口) +class ASiteCrawlStrategyImpl implements CrawlStrategy { + @Override + public void crawl(String url) { + // 先写简单逻辑:打印爬取信息 + System.out.println("正在爬取A网站:" + url); + } +} \ No newline at end of file diff --git a/w11/CrawlException.java b/w11/CrawlException.java new file mode 100644 index 0000000..ce67343 --- /dev/null +++ b/w11/CrawlException.java @@ -0,0 +1,14 @@ +package com.example.datacollect; + +// 根异常:继承RuntimeException(Unchecked异常),爬虫项目所有异常都继承它 +public class CrawlException extends RuntimeException { + // 构造器1:只传错误信息 + public CrawlException(String message) { + super(message); + } + + // 构造器2:传错误信息+原始异常(方便排查根因) + public CrawlException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/w11/NetworkException.java b/w11/NetworkException.java new file mode 100644 index 0000000..1516cd5 --- /dev/null +++ b/w11/NetworkException.java @@ -0,0 +1,9 @@ +package com.example.datacollect; + +// 网络异常:继承根异常CrawlException +public class NetworkException extends CrawlException { + public NetworkException(String message) { + // 给错误信息加前缀,方便定位 + super("网络请求失败:" + message); + } +} diff --git a/w11/ParseException.java b/w11/ParseException.java new file mode 100644 index 0000000..b63498e --- /dev/null +++ b/w11/ParseException.java @@ -0,0 +1,10 @@ +package com.example.datacollect; + +// 解析异常:继承根异常CrawlException +public class ParseException extends CrawlException { + public ParseException(String message) { + super("数据解析失败:" + message); + } +} + + diff --git a/w11/UnsupportedSiteException.java b/w11/UnsupportedSiteException.java new file mode 100644 index 0000000..6af593e --- /dev/null +++ b/w11/UnsupportedSiteException.java @@ -0,0 +1,8 @@ +package com.example.datacollect; + +// 不支持的网站异常:继承根异常CrawlException +public class UnsupportedSiteException extends CrawlException { + public UnsupportedSiteException(String siteKey) { + super("不支持的网站类型:" + siteKey); + } +} \ No newline at end of file