WeatherSpider

项目开发思路

关于这个项目的开发思路以及完整的开发流程可以参考这篇文章:https://www.zifangsky.cn/901.html,我是在这个的基础上进行了修改。增加了一些功能

简介

天气爬虫(全国城镇天气自动定时抓取更新,并开放RESTful查询接口),附带代理IP池定时更新并检测其可用性

(1)技术依赖:

(2)环境依赖:

(3)项目运行:

i)配置依赖环境:

首先编译源代码,生成war包并将war包放到Tomcat中。接着分别启动运行MYSQL和ActiveMQ

修改配置文件中对应的MYSQL和ActiveMQ的连接参数以及定时任务的更新频率,配置文件的路径是:src/main/env/dev/

ii)运行项目:

启动Tomcat之后,根据前面设置的定时任务将会在指定时间开始执行天气更新任务、代理IP获取任务以及代码IP的可用性检测任务

(4)RESTful接口:

除了一些基本的SOAP风格的接口之外,我还对外发布了4个RESTful风格的接口。它们分别是:

i)随机返回一个可用的代理IP:

http://106.185.29.58:8080/WeatherSpider/services/rest/proxyIpService/getRandomOne

ii)返回当前所有可用的代理IP:

http://106.185.29.58:8080/WeatherSpider/services/rest/proxyIpService/getAll

其效果如下: https://projects.dengck.com/images/getall.png

注:可以在这个网站对json字符串进行格式化:http://json.cn/

iii)根据城镇CODE返回一个城镇天气:

http://106.185.29.58:8080/WeatherSpider/services/rest/weatherService/getWeatherByStationCode?stationCode=101060404

其效果如下: https://projects.dengck.com/images/getbystationcode.png

iv)根据城镇名称模糊查询,返回所有匹配的城镇天气:

http://106.185.29.58:8080/WeatherSpider/services/rest/weatherService/getWeatherByStationName?stationName=朝阳

其效果如下: https://projects.dengck.com/images/getbystationname.png)