原文发布时间:2016-09-09 12:07:55

作者:雷中华

 

参考上文:

FME如何采集肯德基中国的所有门店地址(一)问题分析 

FME如何采集肯德基中国的所有门店地址(二)Python、HttpCaller获取门店Json

FME如何采集肯德基中国的所有门店地址(三)Json处理

FME如何采集肯德基中国的所有门店地址(四)地理编码

 

完全无编码实现整个信息采集整理

FME平台擅长无编码,光靠搭积木式的拖拉操作,就可以在Workbench里构建整个信息采集整理工具。

 

截止第四篇,整个工具全貌

                               FME如何采集肯德基中国的所有门店地址(五)

 

 

仅仅入口处需要Python,入口是根据肯德基首页分析全国有门店的城市名。拆开来,是2块功能:

①获取http://www.kfc.com.cn/kfccda/storelist/index.aspx页面信息

②从页面信息中抽取城市列表

 

第一个完全可以使用HttpCaller的Get方法获取到

第二个,尝试用StringSearcher + 正则来实现

 

完全无编码实现,整个工具具体如下:

                               FME如何采集肯德基中国的所有门店地址(五)

 
2个变化

①入口处,用Creator

②获取城市部分,用HttpCaller+StringSearcher+ListExploder来替代

效果,跟之前Python脚本一致

                                   FME如何采集肯德基中国的所有门店地址(五)

 

 

关键 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)。

                                       FME如何采集肯德基中国的所有门店地址(五)

 
 

这里正则表达式编写工具,推荐一个RegexBuddy。这个工具优秀在可以实施查看脚本匹配的结果,来判断调整的方向。本案例中使用的表达式为<a.*?href="javascript:void\(0\);".*?cityid=.*?>([^x00-xff]+?)</a>

                              FME如何采集肯德基中国的所有门店地址(五)

 

结语

本系列借助一个具体的案例,贯穿了笔者近些时间对fme在web上的实践的总结,不可能只是几天就撰写了,更多是之前不断地尝试、试错、改进。FME是个工具,用起来趁手,但有个前提是——得用,不断把玩,不断提升。

 

 

-END-

相关文章:

  • 2021-12-13
  • 2022-12-23
  • 2021-11-26
  • 2021-04-09
  • 2022-12-23
  • 2021-04-23
  • 2022-12-23
  • 2021-06-10
猜你喜欢
  • 2021-09-13
  • 2021-07-19
  • 2021-08-07
  • 2021-12-05
  • 2022-12-23
  • 2021-09-09
  • 2021-06-28
相关资源
相似解决方案