jsonPath解析测试
上一篇文章測試了解析測試的HTML源碼,獲取需要的元素值。
如下的測試代碼模仿網上示例,但是經過了我的理解和實際測試驗證。測試流程如下:
測試淘票票支持的城市
步驟1: 進入淘票票官網
步驟2: 找到url
步驟3: 復制請求的URL到代碼中
url =‘https://dianying.taobao.com/cityAction.json?activityId&_ksTS=1639658592150_137&jsoncallback=jsonp138&action=cityAction&n_s=new&event_submit_doGetAllRegion=true’
步驟4:以及請求頭添加代碼發送的Headers信息
headers = {
‘accept’:‘text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01’,
‘cookie’:‘miid=149457062080870528; enc=QY6eoneP3TUCAdTp8d3MJOgJnMLqmmIpQS+gLj6EDPuxew065EXVCvNrEdIXmozlUufg5zUvNyZ+YTQ2V4p9cw==; cna=4Nz+F9mZ91gCAbfAW780HLti; thw=cn; hng=TW|zh-TW|TWD|158; t=17c5c8356ce22ddc6fe08337efa1cadc; cookie2=1adeccce649568d2b7fcd5576f4d11cb; v=0; _tb_token_=3e783b73fe3e7; xlly_s=1; l=eBa1BNl7QPMcNlJvBOfwlurza77tJIRAguPzaNbMiOCP_Z5H5tihW6QGtHTMCnGVhsCMR35T8LL0BeYBqC2sjqj4axom4vkmn; tfstk=cQM5BVxpvabSAfAFU0tV4EEDoKwFaBLbmQa-VXenIR-Msnn7ksb5QPT03Xb0LkEf.; isg=BKamD7Te-4rYW5CJrdtUKgGr9xwoh-pBST3dRZBPqkmkE0Yt-BftUc_taw-fu-JZ’,
‘referer’:‘https://dianying.taobao.com/?pid=mm_25282911_3455987_122436732’,
‘user-agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36’,
‘x-requested-with’:‘XMLHttpRequest’
}
步驟5:發送請求獲取響應值
request = urllib.request.Request(url=url, headers=headers)
response = urllib.request.urlopen(request)
content = response.read().decode(‘utf-8’)
# print(content)
打印的響應值并非是標準Json格式
需要將返回的字符串做處理,才能成為標準的Json字符串。
步驟6, 返回字符串處理為標準的JSON字符串
# split
content = content.split(’(’)[1].split(’)’)[0]
print(content)
步驟7,使用jsonPath提取支持的城市名稱
with open(‘tpp.json’, ‘w’, encoding=‘utf-8’)as f:
f.write(content)
jsObj = json.load(open(‘tpp.json’, ‘r’, encoding=‘utf-8’))
city_list = jsonpath.jsonpath(jsObj, ‘$…regionName’)
print(city_list)
輸出:
[‘阿壩’, ‘阿克蘇’, ‘阿拉善’, ‘安康’, ‘安慶’, ‘鞍山’, ‘安順’, ‘安陽’, ‘白城’, ‘百色’, ‘白山’, ‘白銀’, ‘保定’, ‘寶雞’, ‘保山’, ‘包頭’, ‘巴彥淖爾’, ‘巴中’, ‘北海’, ‘北京’, ‘蚌埠’, ‘本溪’, ‘畢節’, ‘濱州’, ‘亳州’, ‘巴音郭楞’, ‘滄州’, ‘長春’, ‘常德’, ‘昌吉’, ‘昌江’, ‘長沙’, ‘長治’, ‘常州’, ‘朝陽’, ‘潮州’, ‘承德’, ‘成都’, ‘澄邁縣’, ‘郴州’, ‘赤峰’, ‘池州’, ‘重慶’, ‘崇左’, ‘楚雄’, ‘滁州’, ‘大理’, ‘大連’, ‘儋州’, ‘丹東’, ‘大慶’, ‘大同’, ‘大興安嶺’, ‘達州’, ‘德宏’, ‘德陽’, ‘德州’, ‘定安’, ‘定西’, ‘迪慶’, ‘東方’, ‘東莞’, ‘東營’, ‘鄂爾多斯’, ‘恩施’, ‘鄂州’, ‘防城港’, ‘佛山’, ‘撫順’, ‘阜新’, ‘阜陽’, ‘撫州’, ‘福州’, ‘甘南’, ‘贛州’, ‘甘孜’, ‘鞏義市’, ‘廣安’, ‘廣元’, ‘廣州’, ‘貴港’, ‘桂林’, ‘貴陽’, ‘固原’, ‘哈爾濱’, ‘海東’, ‘海口’, ‘海南州’, ‘海西’, ‘哈密’, ‘邯鄲’, ‘杭州’, ‘漢中’, ‘鶴壁’, ‘河池’, ‘合肥’, ‘鶴崗’, ‘黑河’, ‘衡水’, ‘衡陽’, ‘和田’, ‘河源’, ‘菏澤’, ‘賀州’, ‘紅河’, ‘淮安’, ‘淮北’, ‘懷化’, ‘淮南’, ‘黃岡’, ‘黃南’, ‘黃山’, ‘黃石’, ‘呼和浩特’, ‘惠州’, ‘葫蘆島’, ‘呼倫貝爾’, ‘湖州’, ‘佳木斯’, ‘吉安’, ‘江門’, ‘焦作’, ‘嘉興’, ‘嘉峪關’, ‘揭陽’, ‘吉林’, ‘濟南’, ‘金昌’, ‘晉城’, ‘景德鎮’, ‘荊門’, ‘荊州’, ‘金華’, ‘濟寧’, ‘晉中’, ‘錦州’, ‘九江’, ‘酒泉’, ‘雞西’, ‘濟源’, ‘開封’, ‘喀什’, ‘克拉瑪依’, ‘克孜勒蘇柯爾克孜’, ‘昆明’, ‘來賓’, ‘廊坊’, ‘蘭州’, ‘拉薩’, ‘樂山’, ‘涼山’, ‘連云港’, ‘聊城’, ‘遼陽’, ‘遼源’, ‘麗江’, ‘臨滄’, ‘臨汾’, ‘臨高’, ‘臨夏’, ‘臨沂’, ‘林芝’, ‘麗水’, ‘六安’, ‘六盤水’, ‘柳州’, ‘隴南’, ‘龍巖’, ‘婁底’, ‘陵水’, ‘呂梁’, ‘漯河’, ‘洛陽’, ‘瀘州’, ‘馬鞍山’, ‘茂名’, ‘眉山’, ‘梅州’, ‘綿陽’, ‘牡丹江’, ‘南昌’, ‘南充’, ‘南京’, ‘南寧’, ‘南平’, ‘南通’, ‘南陽’, ‘內江’, ‘寧波’, ‘寧德’, ‘怒江’, ‘盤錦’, ‘攀枝花’, ‘平頂山’, ‘平涼’, ‘萍鄉’, ‘普洱’, ‘莆田’, ‘濮陽’, ‘黔東南’, ‘潛江’, ‘黔南’, ‘黔西南’, ‘青島’, ‘慶陽’, ‘清遠’, ‘秦皇島’, ‘欽州’, ‘瓊海’, ‘瓊中’, ‘齊齊哈爾’, ‘七臺河’, ‘泉州’, ‘曲靖’, ‘衢州’, ‘日喀則’, ‘日照’, ‘三門峽’, ‘三明’, ‘三亞’, ‘上海’, ‘商洛’, ‘商丘’, ‘上饒’, ‘山南’, ‘汕頭’, ‘汕尾’, ‘韶關’, ‘紹興’, ‘邵陽’, ‘沈陽’, ‘深圳’, ‘石河子’, ‘石家莊’, ‘十堰’, ‘石嘴山’, ‘雙鴨山’, ‘朔州’, ‘四平’, ‘松原’, ‘綏化’, ‘遂寧’, ‘隨州’, ‘宿遷’, ‘宿州’, ‘蘇州’, ‘塔城’, ‘泰安’, ‘太原’, ‘臺州’, ‘泰州’, ‘唐山’, ‘天津’, ‘天門’, ‘天水’, ‘鐵嶺’, ‘銅川’, ‘通化’, ‘通遼’, ‘銅陵’, ‘銅仁’, ‘萬寧’, ‘濰坊’, ‘威海’, ‘渭南’, ‘文昌’, ‘文山’, ‘溫州’, ‘烏海’, ‘武漢’, ‘蕪湖’, ‘五家渠’, ‘烏蘭察布’, ‘烏魯木齊’, ‘武威’, ‘無錫’, ‘吳忠’, ‘梧州’, ‘廈門’, ‘西安’, ‘湘潭’, ‘湘西’, ‘襄陽’, ‘咸寧’, ‘仙桃’, ‘咸陽’, ‘孝感’, ‘錫林郭勒’, ‘興安盟’, ‘邢臺’, ‘興義市’, ‘西寧’, ‘新鄉’, ‘信陽’, ‘新余’, ‘忻州’, ‘西雙版納’, ‘宣城’, ‘許昌’, ‘徐州’, ‘雅安’, ‘延安’, ‘延邊’, ‘鹽城’, ‘陽江’, ‘洋浦’, ‘陽泉’, ‘揚州’, ‘煙臺’, ‘宜賓’, ‘宜昌’, ‘伊春’, ‘宜春’, ‘伊犁’, ‘銀川’, ‘營口’, ‘鷹潭’, ‘宜興市’, ‘益陽’, ‘永州’, ‘岳陽’, ‘玉林’, ‘榆林’, ‘運城’, ‘云浮’, ‘玉樹’, ‘玉溪’, ‘棗莊’, ‘張家界’, ‘張家口’, ‘張掖’, ‘漳州’, ‘湛江’, ‘肇慶’, ‘昭通’, ‘鄭州’, ‘鎮江’, ‘中山’, ‘中衛’, ‘周口’, ‘舟山’, ‘珠海’, ‘駐馬店’, ‘株洲’, ‘淄博’, ‘自貢’, ‘資陽’, ‘遵義’]
獲取了想要的數據。
總結
以上是生活随笔為你收集整理的jsonPath解析测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字典的操作方法
- 下一篇: 玉帝传美猴王上天,大闹天宫之Java设计