FME如何採集肯德基中國的所有門店位址(三)

2021-08-22 08:35:02 字數 1154 閱讀 2109

fme如何採集肯德基中國的所有門店位址(一)問題分析 

fme如何採集肯德基中國的所有門店位址(二)python、httpcaller獲取門店json

json分析

前面步驟獲取到肯德基店面資訊的json資訊串,用notepad++的jsonviewer分析,結構如下:

關鍵資訊在table1裡,有storename、addressdetail、pro、provincename、cityname。

json物件分為object和array兩種,最簡單的是單獨的object。乙個json裡還可能有多個object組成的objects以及陣列array,在肯德基店面資訊json中,難點在於陣列(array)的處理。

fme處理json三個利器

jsonfragmenter、jsonflattener、jsonextrator這三個函式,用法用途各有特色,分別嘗試處理,搭建如下

結果:jsonfragmenter

轉換器三個重要引數

①json query。json["table1"][*],第乙個"json"是固定的,第二個"table1"參見上面json結構,重要資訊就在table1組裡。最重要的是第三個,table1下的組,通過[*]萬用字元來獲取;

②recursively flatten arrays這個引數是遞迴,選「yes」,可以把組分離

③暴露屬性,填的是json裡的key

jsonflattener

轉換器兩個重要引數

①同上,遞迴獲取所有陣列;

②難點。糾結了好久,陣列的表示方法是table1{},他的屬性直接用 table1{}.storename

③這個轉換器本身輸出的陣列,還需要借助listexploder來具體展開這個組。展開的陣列是暴露出來的屬性 table1{}

jsonextractor

這個轉換器相對簡單,只有乙個json query引數,它無法處理陣列。用[*]萬用字元,匹配獲取到同乙個節點下所有的內容。

-end-

FME如何採集肯德基中國的所有門店位址(一)

fme是個優秀的平台,並保持快速且持續的增長 更多的函式模組 更多的輸入輸出格式支援。python是膠水語言,最大的特點就是擴充套件模組豐富,與fme一拍即合。一方面,fme借助pythoncaller實現了平台承載功能的擴充套件,在fme裡嵌入python,融合其他it技術,彰顯fme的平台特性 ...

FME如何採集肯德基中國的所有門店位址(二)

2016 09 09 11 34 49 參考上文 fme如何採集肯德基中國的所有門店位址 一 pythoncreator 與pythoncaller 在上文 一 中介紹了借助pythoncreator,從種子位址出發,經過beautifulsoup分析網頁和urllib2的post request獲...

獻給所有想學習正則和採集的朋友

function get url content url method c 我們用智慧型方式定義header頭倍資訊.foreach getallheaders as key val 虛擬來路.經過修正,基本上,來路也是那個站,主機也是url站點.header array trim str 下面僅僅...