使用過最新版火車采集器V9的朋友應(yīng)該都發(fā)現(xiàn)V9新增了json提取的功能,但是許多使用抓取網(wǎng)頁數(shù)據(jù)工具的朋友在操作此功能的時候都會覺得有點弄不明白,這里特意為大家整理了json提取的教程示例,感興趣的朋友可以仔細(xì)研究一下。
首先大家需要明白JSON 是有兩種結(jié)構(gòu),簡單的說json就是javascript中的對象和數(shù)組,所以這兩種結(jié)構(gòu)就是對象和數(shù)組兩種,通過這兩種結(jié)構(gòu)可以表示各種復(fù)雜的結(jié)構(gòu)。下面具體說明一下。
1、對象:對象在js中表示為“{}”括起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為 {key:value,key:value,...}的鍵值對的結(jié)構(gòu),在面向?qū)ο蟮恼Z言中,key為對象的屬性,value為屬性值,所以很容易理解,取值方法為對象key 獲取屬性值value,這個屬性值的類型可以是數(shù)字、字符串、數(shù)組、對象幾種。
2、數(shù)組:數(shù)組在js中是中括號“[]”括起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數(shù)字、字符串、數(shù)組、對象幾種。
經(jīng)過對象、數(shù)組2種結(jié)構(gòu)就可以組合成復(fù)雜的數(shù)據(jù)結(jié)構(gòu)了。如下:
{ "name": "中國", "province": [{ "name": "黑龍江", "cities": { "city": ["哈爾濱", "大慶"] } }, { "name": "廣東", "cities": { "city": ["廣州", "深圳", "珠海"] } }, { "name": "臺灣", "cities": { "city": ["臺北", "高雄"] } }, { "name": "新疆", "cities": { "city": ["烏魯木齊"] } }] }
我們可以借助工具http://tool.oschina.net/codeformat/json 測試是否是JSON,格式化后如圖:
下面舉例說明JSON提取的2種方式:
1、JSON數(shù)據(jù)源:URL網(wǎng)址
如我們需要對JSON網(wǎng)址http://car.interface.autohome.com.cn/dealer/LoadDealerPrice.ashx?_callback=LoadDealerPrice&type=1&seriesid=3170&city=340100 做采集
分析得出:此URL的整個源代碼是個完整的JSON。 所以JSON數(shù)據(jù)源選擇 URL網(wǎng)址然后勾選循環(huán)匹配,就可以采集到整個JSON里的數(shù)據(jù)。
如圖:
2、JSON數(shù)據(jù)源:JSON文本: 另外一種情況,網(wǎng)址里的源碼不全是JSON,而只是一部分代碼是JSON形式,此時我們需要提取出這段JSON文本,然后再格式化。例如網(wǎng)址 http://car.autohome.com.cn/config/series/3170.html
所以我們需要通過多頁的形式,來獲取本頁地址里這部分JSON代碼,然后再設(shè)置JSON表達式。
如圖:
按照上面的步驟,兩種JSON提取就完成了,廣大用戶朋友們是不是覺得簡單又好用,所以抓取網(wǎng)頁數(shù)據(jù)工具首選火車采集器V9,功能全面且易用,新手朋友們多多聯(lián)系,一定能快速上手,如還有疑問或其他問題請隨時聯(lián)系官方客服為您解答哦!