关于这个项目的开发思路以及完整的开发流程可以参考这篇文章:https://www.zifangsky.cn/901.html,我是在这个的基础上进行了修改。增加了一些功能
天气爬虫(全国城镇天气自动定时抓取更新,并开放RESTful查询接口),附带代理IP池定时更新并检测其可用性
SSM(Spring+Spring MVC+Mybatis):项目基本架构WebMagic:轻量型爬虫框架,用于抓取每个城镇的天气以及抓取免费代理IPActiveMQ:消息中间件,用于在定时更新全国城镇天气时将每个城镇天气的更新任务压入消息队列中,之后再使用多个消费者去消费这些消息(PS:多个消息消费者同时更新这些城镇的天气)Quartz:定时调度,用于设置每隔多久更新一次天气;每隔多久抓取一次代理IP;每隔多久检测一下数据库中的代理IP是否仍然有效Apache CXF:用于对外发布SOAP风格和RESTFul风格的接口首先编译源代码,生成war包并将war包放到Tomcat中。接着分别启动运行MYSQL和ActiveMQ
修改配置文件中对应的MYSQL和ActiveMQ的连接参数以及定时任务的更新频率,配置文件的路径是:src/main/env/dev/
启动Tomcat之后,根据前面设置的定时任务将会在指定时间开始执行天气更新任务、代理IP获取任务以及代码IP的可用性检测任务
除了一些基本的SOAP风格的接口之外,我还对外发布了4个RESTful风格的接口。它们分别是:
http://106.185.29.58:8080/WeatherSpider/services/rest/proxyIpService/getRandomOne
http://106.185.29.58:8080/WeatherSpider/services/rest/proxyIpService/getAll
其效果如下:

注:可以在这个网站对json字符串进行格式化:http://json.cn/
http://106.185.29.58:8080/WeatherSpider/services/rest/weatherService/getWeatherByStationCode?stationCode=101060404
其效果如下:

http://106.185.29.58:8080/WeatherSpider/services/rest/weatherService/getWeatherByStationName?stationName=朝阳
其效果如下:
