welcome to xlongwei.com

欢迎大家一起学习、交流、分享


QQ:9167702333 邮箱:admin@xlongwei.com

全国行政区划数据抓取与处理


分类 Java   关键字 分享   标签 java   发布 hongwei  1616746092396
注意 转载须保留原文链接,译文链接,作者译者等信息。  

crawler 使用jQuery风格实现,解决了网页数据解析和保存的问题,这次为了获得全国行政区划五级数据,更进一步将保存的数据录入了数据库,后端使用JavaScript+beetlsql实现,并使用APIJSON提供数据接口访问。参考设计文档接口文档

  1. 爬虫配置与驱动
    crawler.district,这里是每个层级的网页数据分析脚本,爬虫驱动后会递归执行配置好的五级脚本,并将数据存入redis
    image
    数据设计如下,使用redis的map结构存储,然后创建相应的表结构,以便数据处理时对应入库
    image
    问题1:数据抓取时cpu飙升,通过redis配置休眠时间控制速度,避免过快导致系统崩溃
    问题2:数据抓取时会输出大量日志,通过logserver控制日志级别后可以提高速度
  2. 数据处理与入库:
    这段代码有点冗长,但还算好理解:
    1,util提供了3种操作:hgetall获取保存到redis的map数据,get(json,name)获取json里的字段,insert插入数据
    2,.stream().limit(1),限制处理1条数据,可以观察日志分析逻辑是否正确,然后才注释此行并全量解析数据
    3,counts={},统计数据条数,执行完成后与数据库对比数据量是否匹配
    image

    处理代码使用了beetl、beetlsql、hutool
    image

  3. 数据查询与接口
    数据接口使用了APIJSON,请求正文如下,为了支持中文拼音排序,扩展了pinyinSort自定义函数
    image

订购接口请访问showapi,或联系博主获取数据。