java版网络爬虫webmagic爬虫,爬去国家统计局区县划分信息
由于公司业务需求需要一份最新的城市区域划分信息,所以就考虑到国家统计局去获取一份最新区域信息。经过调研选用了java版本爬虫框架webmagic来处理这个需求。下面介绍下爬虫逻辑以及代码
web magic官方地址:
1 | http://webmagic.io/ |
maven依赖
1 | <!--爬虫--> |
保存结果的实体 StaticDto.java
1 | /** |
爬虫核心逻辑代码 ChinaStatisticProcessor.java
1 | import us.codecraft.webmagic.Page; |
核心爬虫逻辑说明
关于web magic的详细介绍请参考官方文档,官方文档描述的很清楚。这里我只对上面的逻辑做简单的描述介绍,看完官方文档在看这个逻辑会更好。如果有描述的不对的地方,请不吝赐教。1
2
3
4
5
6private Site site = Site
.me()
.setDomain("www.stats.gov.cn")
.setSleepTime(3000)
.setCharset("gb2312")
.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");
站点信息设置,包括设置请求域,间隔时间,编码方式,浏览器agent等信息
1 | public void process(Page page) |
process方法是爬虫爬去数据过程中系统自动循环调用的方法,这里使用了正则表达式针对路径做了业务区分。其他的几个方法是具体逻辑的处理,上面的注释很明显。
1 | Spider.create(new ChinaStatisticProcessor()) |
通过Spider创建执行入口,设置入口连接以及启动线程数。Pipeline这里可以设置输出形式,具体请参考官方文档。
以上,这里的代码留作备忘录。