原文发布时间:2016-09-09 12:07:55
作者:雷中华
参考上文:
FME如何采集肯德基中国的所有门店地址(二)Python、HttpCaller获取门店Json
完全无编码实现整个信息采集整理
FME平台擅长无编码,光靠搭积木式的拖拉操作,就可以在Workbench里构建整个信息采集整理工具。
截止第四篇,整个工具全貌
仅仅入口处需要Python,入口是根据肯德基首页分析全国有门店的城市名。拆开来,是2块功能:
①获取http://www.kfc.com.cn/kfccda/storelist/index.aspx页面信息
②从页面信息中抽取城市列表
第一个完全可以使用HttpCaller的Get方法获取到
第二个,尝试用StringSearcher + 正则来实现
完全无编码实现,整个工具具体如下:
2个变化
①入口处,用Creator
②获取城市部分,用HttpCaller+StringSearcher+ListExploder来替代
效果,跟之前Python脚本一致
关键 HttpCaller+StringSearcher+ListExploder
HttpCaller+StringSearcher+ListExploder的组合,实现城市的获取,造就了整个工具完全无编码。
1??HttpCaller相对简单,只需要Get到http://www.kfc.com.cn/kfccda/storelist/index.aspx整个地址,返回信息取名为kfcstores_respose_body
2??StringSearcher,整个工具强大就强大在可以使用正则来匹配,然后借助ListExplorer来展开所获取的城市名(展开的是Subexpression Matches List,all_match_sub)。
这里正则表达式编写工具,推荐一个RegexBuddy。这个工具优秀在可以实施查看脚本匹配的结果,来判断调整的方向。本案例中使用的表达式为<a.*?href="javascript:void\(0\);".*?cityid=.*?>([^x00-xff]+?)</a>
结语
本系列借助一个具体的案例,贯穿了笔者近些时间对fme在web上的实践的总结,不可能只是几天就撰写了,更多是之前不断地尝试、试错、改进。FME是个工具,用起来趁手,但有个前提是——得用,不断把玩,不断提升。
-END-