HAWK是一个数据采集和清洗工具,依据GPL协议开源,能够灵活,有效地采集来自网页、数据库、文件,并通过可视化地拖拽,快速地进行生成、过滤、转换等操作。其功能最适合的领域,是爬虫和数据清洗;Hawk的含义为“鹰”,能够高效,准确地捕杀猎物。
开源项目主页: http://www.desertlambda.com/
1、POI地址:
https://www.poi86.com/poi/amap/district/350502/1.html
观察网址规则
观察网址,每地标名称点击链接,跳转到下一层页面才有经纬度信息,所有我们的目的是获取鲤城下面的所以地标链接地址http://www.poi86.com/poi/amap/623.html,前半部分是固定的,后面就是每个地标点的页面地址;HAWK 新建一个网页采集器,命名为链接采集,点击手气不错,获取对象,关闭-》选择 是 保存属性
由于链接是隐性标签,直接点击【手气不错】按钮获取不到地址,所以需要手动添加,浏览器按F12进入源码查看器:
观察链接在名称的前面,同属于一个td标签内,所以我们只要在地标名称的对象后面加个链接地址即可:
点击 提取测试 【按钮】,成功获取链接地址:
新建一个网页采集器,命名为经纬度采集,主要是为了采集经纬度详细页:
输入第一个地标的经纬度页面地址:http://www.poi86.com/poi/amap/623.html
运气不好,直接点击【手气不错】按钮同样采集不到经纬度信息,所以我们需要自己添加,浏览器按F12进入源码界面,点击对象选区按钮,鼠标放在经纬度,在源码经纬度右键点击 拷贝 xpath路径
复制到软件中的Xpath中,同理自行添加其它字段:
同理添加其它字段:
点击手气不错按钮,获取完整信息,关闭选 是 保存。
记得保存任务模版
新建一个数据清洗模块
观察鲤城下面共有1127页地标信息:
按浏览器地址测试,实际只有381页,382页已经没有数据
拖入【合并多列】模块到id,双击弹出窗口,,输出新列名:url, 复制网址格式导 format文本框,修改序列为:{0}
点击确认后 生成所有页面的网址。
拖入【从爬虫转换】模块到URL,双击弹出窗口,输出爬虫选择:链接采集器
保存模块名称为 :链接清洗
保存后,,右边调试窗口 点击刷新按钮 生成结果:
再拖入合并多列模块到链接,输入网址前缀,,组成完整的详细页网址:
得到完整的网址:
再拖入一个 【从爬虫转换】 模块到 URL 爬虫选择 经纬度采集
等待一会即可获取经纬度:
采集到此完成,,现在拖入【写入数据表】模块,命名为鲤城POI,获取所有数据:
选择 并行模式 执行:
所有任务完成后,右键点击右下角 鲤城POI,另存EXCEL
Excel表格如下
总结:
共建立2个页面采集器和1个数据清洗。
1个数据清洗模块先获取地标的链接,拼成完整的链接地址,再从这个地址索引经纬度详细页的采集器。
更详细的方法请看本公众号另一篇文章,马上开启大神之旅:
Hawk开源爬虫软件爬取商圈
如果喜欢别忘了关注点赞哦